[Proposal] Weak reference implementation for D

Sean Kelly sean at invisibleduck.org
Wed Oct 16 17:05:40 PDT 2013


On Wednesday, 16 October 2013 at 10:02:28 UTC, Denis Shelomovskij 
wrote:
> 16.10.2013 3:20, Sean Kelly пишет:
>Looking at the code... I think you'll get this to work, but
>> manipulating such user-mode weak references seems really 
>> expensive.  Why not work on a DIP to get them built in?  For 
>> example, one option might be to have the GC perform certain 
>> types of finalization while the world is stopped.  This would 
>> have to be limited to very rudimentary stuff, and the easiest 
>> way to guarantee that would be to have everything live in 
>> Druntime.
>
> But someone have to do it. And I can only see it will save one 
> of two GC lock/unlock pairs.

If the GC calls "block was disposed" callbacks when the world is 
stopped, it's possible that a WeakRef implementation wouldn't 
need any synchronization at all beyond whatever is necessary to 
prevent the compiler from optimizing anything away.  I haven't 
thought too hard about this though, so perhaps there's something 
I've missed.


More information about the Digitalmars-d mailing list