forcing "@nogc" on class destructors

weaselcat via Digitalmars-d digitalmars-d at puremagic.com
Fri Jan 23 16:09:08 PST 2015


On Friday, 23 January 2015 at 23:28:28 UTC, Matthias Bentrup
wrote:
> On Friday, 23 January 2015 at 21:00:08 UTC, Steven Schveighoffer
> wrote:
>> On 1/23/15 3:40 PM, deadalnix wrote:
>>> On Friday, 23 January 2015 at 13:12:44 UTC, Steven 
>>> Schveighoffer wrote:
>>>> On 1/23/15 8:05 AM, Matthias Bentrup wrote:
>>>>> On Friday, 23 January 2015 at 10:53:54 UTC, aldanor wrote:
>>>>>> On Friday, 23 January 2015 at 08:58:11 UTC, Ola Fosheim 
>>>>>> Grøstad wrote:
>>>>>>> How about banning GC-allocation of classes with 
>>>>>>> destructors?
>>>>>> Uh... what? ^__^
>>>>>>
>>>>>> Maybe just ban classes altogether then?
>>>>>
>>>>> No, don't ban them, that will break to much code. Just 
>>>>> don't execute
>>>>> them. Any application that depends on destructors being 
>>>>> called by the GC
>>>>> is broken in 9 out of 10 cases anyway.
>>>>
>>>> This is very wrong.
>>>
>>> This is as per spec :)
>>
>> No, spec says your dtor is not guaranteed to run for 
>> unreferenced memory. It doesn't say your destructor may not be 
>> run even when the memory is collected. In fact, it says "The 
>> garbage collector calls the destructor function when the 
>> object is deleted."
>>
>> But my real point is that depending on dtors being called by 
>> the GC is not broken 90% of the time.
>>
>> -Steve
>
> If the program ends before the next GC the destructor is never
> called.

when the runtime shuts down it calls a full collect on the GC.
I'm not sure if this is actually required as per the spec.


More information about the Digitalmars-d mailing list