[Issue 4104] No way to get notified about D runtime termination.

d-bugmail at puremagic.com d-bugmail at puremagic.com
Thu Jul 22 01:22:19 PDT 2010


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



--- Comment #2 from Max Samukha <samukha at 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: -------


More information about the Digitalmars-d-bugs mailing list