Re[2]: [Gc] weak maps and libgc

Ivan Maidanski ivmai at
Wed Oct 26 01:18:44 PDT 2011

Hi Andy,

26 10 2011, 00:06 Andy Wingo <wingo at>:
> Hi,
> On Fri 21 Oct 2011 16:40, Ivan Maidanski <ivmai at> writes:
> > Could you please summarize your past writings about the
> > implementations difficulties?  Thanks.
> More concretely, I would be happy if:
>  (1) There were a variant of GC_register_disappearing_link that also
>      incremented an `unsigned long' somewhere in memory.  This would
>      allow me to keep an accurate count of how many items are in a weak
>      hash table, and remove my need to run something after GC.

You mean statistic counter, right?
Good idea.

>  (2) There were a function to move disappearing links, perhaps callable
>      only within the alloc lock.
>      I did some profiling today with the open-addressed table.  It has
>      to shuffle items around sometimes.  Unregistering then registering
>      disappearing links shows up pretty high on the profile.

Is my understanding correct - you want to optimize the following:

// assume GC_general_register_disappearing_link(&link, obj1);
GC_general_register_disappearing_link(&link, obj2);

Right? If yes, I don't mind again.

>  (3) It would be nice if there were a callback after GC.  It would let
>      me accurately measure the time in GC, for example.  This isn't
>      relevant to the current discussion though.

What's about existing GC_set_start_callback?

> What do you think?  I am happy to look at coding up these features, but
> I would like your input first.

Ok. My 'input' is above.


> Andy
> --

More information about the Gc mailing list