Garbage collector throwing during collection

Sönke Ludwig ludwig at informatik.uni-luebeck.de
Thu Jul 14 10:21:13 PDT 2011


Hi! I see, that could also explain some earlier crashes. I can 
definitely work around it for now and was just worrying that this could 
have been part of the general plan for the GC.

Regards,
Sönke

Am 14.07.2011 12:12, schrieb Vladimir Panteleev:
> On Thu, 14 Jul 2011 09:58:09 +0300, Sönke Ludwig
> <ludwig at informatik.uni-luebeck.de> wrote:
>
>> On DMD I got some strange out-of-memory errors with the current 2.054
>> version. I tracked it down to allocations happening during garbage
>> collection.
>>
>> Has something fundamental in the GC implementation changed in the
>> latest release? It used to work, but seems to be completely disallowed
>> now. I think it is quite a strong requirement to not make any
>> allocations from within finalizers and makes them just another bit
>> more useless. (In my case I have some logging going on which needs
>> dynamic allocations for formatting (Appender)).
>
> Hi, I was the one who submitted the patch. The situation before the
> patch was that allocating memory from a finalizer of a collected object
> inevitably lead to memory corruption (which is, as you may know,
> devilishly hard to track down). Ideally, someone would rewrite the
> appropriate parts of the GC to allow safe throwing and allocations from
> finalizers, but that hasn't happened yet.
>
> Here is the Bugzilla issue:
> http://d.puremagic.com/issues/show_bug.cgi?id=5653
>



More information about the Digitalmars-d mailing list