Destructor nonsense on dlang.org

Alex Rønne Petersen alex at lycus.org
Thu May 24 07:28:25 PDT 2012


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
alex at lycus.org
http://lycus.org


More information about the Digitalmars-d mailing list