Weak references.

Sean Kelly sean at invisibleduck.org
Sun Apr 13 20:52:03 PDT 2008


== Quote from Jason House (jason.james.house at gmail.com)'s article
> Sean Kelly wrote:
> > == Quote from Jarrett Billingsley (kb3ctd2 at yahoo.com)'s article
> >> "Sean Kelly" <sean at invisibleduck.org> wrote in message
> >> news:fttd02$1mp1$1 at digitalmars.com...
> >> >
> >> > Are these tables AAs?  And how do the weak references store their
> >> > reference?
> >> > The type information provided to AAs is a bit weak, and so some
> >> > non-pointer
> >> > data is currently still scanned by the GC.  I'm going to improve this a
> >> > bit in the
> >> > next Tango release, but it still won't be perfect (because the compiler
> >> > doesn't
> >> > provide enough info for it to be).
> >> In my tests I've just been doing
> >> auto weakref = new WeakRef!(A)(new A);
> >> and then checking that after doing god-knows-what to try to get it to
> >> collect that instance of A, so it's not even that I'm doing anything that
> >> crazy.
> >
> > Just for kicks, try querying the GC to determine whether the GC thinks
> > weakref contains pointers.
> >
> >
> > Sean
> How would one do that?

(from memory)

    if( GC.getAttr( weakref ) & GC.BlkAttr.NO_SCAN )
        printf( "The GC will not scan weakref\n" );


Sean



More information about the Digitalmars-d mailing list