2012-03-20 20 views
3

ファイバー・インスタンスfiberの途中で完了したら、それを完了せずにI yieldを編集しました。これ以上使用しないでください。fiberそれで?私はそれを明示的に破棄すべきか、ファイバーにはkillのようなものがありますか、それとも適切にガベージコレクションされますか?もしそうなら、Rubyは将来私がfiber.resumeに行くのかどうかを知っていますか?ファイバーの途中で終了した後に行うこと

答えて

0

既に死んでいてもそれを殺す必要はありません。繊維からのyieldは仕事をします。ファイバインスタンスがどの変数にも格納されていないことを確認するだけです。ガベージコレクタは、オブジェクトを参照することなくオブジェクトを定期的に破棄することによって動作します。ファイバーを変数に入れておくと、ファイバーは到達不能になるまでメモリー内に留まります。

関連する問題