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
<lud...@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


Reply via email to