On 03/08/2013 01:17 AM, Walter Bright wrote:
On 1/2/2012 11:20 AM, Martin Nowak wrote:- Libraries might not be unloaded as long as GC collected class instances still exist because finalization fails otherwise.D doesn't guarantee that finalizers will run on GC allocated objects. Therefore, when unloading a dll: 1. run a gc collection 2. for all objects remaining on the heap if they have a finalizer and that finalizer points into the dll code mark them as not having a finalizer
Yeah, that's the pragmatic solution. I don't really like the 2. point though but that won't be a problem with the current GC.
It also avoids the false pointer problems of the GC.trackRange approach.
