Garbage collector throwing during collection

Vladimir Panteleev vladimir at thecybershadow.net
Thu Jul 14 03:12:45 PDT 2011


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

-- 
Best regards,
  Vladimir                            mailto:vladimir at thecybershadow.net


More information about the Digitalmars-d mailing list