View mode: basic / threaded / horizontal-split · Log in · Help
March 08, 2013
Re: Ideas for runtime loading of shared libraries.
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.
Next ›   Last »
1 2 3 4 5
Top | Discussion index | About this forum | D home