[Issue 3523] Fiber is not garbage collected properly

d-bugmail at puremagic.com d-bugmail at puremagic.com
Wed Nov 18 19:56:26 PST 2009


http://d.puremagic.com/issues/show_bug.cgi?id=3523



--- Comment #1 from Witold Baryluk <baryluk at smp.if.uj.edu.pl> 2009-11-18 19:56:25 PST ---
If one will not call derived.call() (so leaving Fiber in TERM state, and never
running it at all) it will be properly collected.

Adding after derived.call(), a derived.reset() to make it back to TERM state,
doesn't help (still it is not collected).

Adding second derived.call(), after first one, will make collect() to work
correctly.

So i can assume it run() method terminates correctly and underlaying stack is
destroyed, object is properly destructed in colletion phase.

Essentially my problem is because my Fibers doesn't terminate at all they
"yield" infinitly (saving some auxilary data in fields of some objects, so this
data can be used outside of yield, essentiall in thread which called call), but
i want to terminate them automatically (when they are not referenced by any
thread or other Fiber) if needed.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list