3 votes

Que faire en cas d'abandon au milieu d'une fibre ?

Une fois que j'ai terminé au milieu d'une instance Fiber fiber c'est-à-dire que I yield Je l'ai quitté sans l'avoir terminé, et je n'utilise pas d'outils d'aide à la décision. fiber plus, que dois-je en faire ? Dois-je le détruire explicitement, ou existe-t-il une solution du type kill pour un Fiber, ou sera-t-il collecté correctement ? Si c'est le cas, alors comment Ruby sait-il si je vais faire un fiber.resume à l'avenir ou non ?

0voto

Jwosty Points 1608

Il n'est pas nécessaire de le tuer s'il est déjà mort ; yield d'une fibre fera l'affaire. Vous devez simplement vous assurer que l'instance de la fibre n'est stockée dans aucune variable. C'est ainsi que vous les "libérez" : le garbage collector travaille en détruisant périodiquement les objets sans références vers eux. Si vous gardez votre fibre dans une variable, elle restera en mémoire jusqu'à ce que vous la rendiez inaccessible.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X