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



--- Comment #2 from Max Samukha <samu...@voliacable.com> 2010-07-22 01:21:54 
PDT ---
I am afraid it is too early.

The problem is that during the final GC cycle wrappers owned by D (subject to
garbage collection) will be destroyed. As part of their destruction process,
they will destroy their corresponding C++ objects, which may destroy other C++
objects, which will destroy their D wrappers (those added to roots).

Though I am not entirely sure whether the last-mentioned wrappers need to be
destroyed at program exit, I tend to think they do, just like the wrapper that
owns them (that is the one that indirectly causes their destruction).

>From the above follows that we need to know when the final GC cycle has been
finished, so that QtD doesn't try to destroy wrappers for the C++ objects that
survived that cycle.

Obviously isHalting does not help here because it is set before the GC cycle is
initiated.

A field of an enum type indicating the current runtime state would be great.

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

Reply via email to