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