forcing "@nogc" on class destructors

Matthias Bentrup via Digitalmars-d digitalmars-d at puremagic.com
Fri Jan 23 15:28:28 PST 2015


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.


More information about the Digitalmars-d mailing list