2012-03-20 3 views
3

Как только я закончил посередине экземпляра Fiber fiber, т. Е. I yield из него, без его завершения, и я больше не использую fiber, что мне нужно делать с этим? Должен ли я явным образом уничтожить его, или есть что-то вроде kill для волокна, или это будет сбор мусора должным образом? Если да, то как Ruby знает, буду ли я в fiber.resume в будущем или нет?Что делать после выхода из середины волокна

ответ

0

Вам не нужно убивать его, если он уже мертв; yield от волокна будет выполнять эту работу. Вам просто нужно убедиться, что экземпляр волокна не хранится ни в каких переменных. Вот как вы «освобождаете» их: сборщик мусора работает, периодически уничтожая объект без каких-либо ссылок на них. Если вы держите свое волокно в какой-то переменной, оно останется в памяти, пока вы не сделаете его недоступным.

Смежные вопросы