On 24-05-2012 14:48, Thor wrote:
On Thursday, 24 May 2012 at 12:38:45 UTC, Alex Rønne Petersen wrote:
On 24-05-2012 14:33, Thor wrote:
On Thursday, 24 May 2012 at 12:21:02 UTC, Alex Rønne Petersen wrote:
Hi,
http://dlang.org/class.html#Destructor
"The garbage collector is not guaranteed to run the destructor for all
unreferenced objects."
What the *hell*? So resources are allowed to arbitrarily leak and the
programmer has to actually expect this to happen?
I really, really hope that this is a documentation error or early
design decision that has since been rectified but with lack of
documentation updates.
use "clear", or "scope (exit)" or "structs" or scoped!... etc.
I know.
There could always be a false reference... so you cannot depend on
automatically releasing resources in a class destructor.
False pointers have nothing to do with it. The GC should free and
finalize all objects on shutdown, meaning the finalizer runs *sooner
or later*. If this is the case (which I do believe it is), then the
docs are very wrong.
__gshared uint my_false_ptr;
even if we are shutting down, the static references doesn't disappear...
or did I miss something?
The GC should (and probably does) assume at shutdown that all objects
are unreferenced, and therefore reclaim and finalize them.
--
Alex Rønne Petersen
a...@lycus.org
http://lycus.org