On Fri 18 Mar 2011 12:51, [email protected] (Ludovic Courtès) writes:

> michaelawells <[email protected]> writes:
>
>>>   size_t len = SCM_HASHTABLE_N_ITEMS (table);
>>> 
>>>   while (k--)
>>>     {
>>>       size_t removed;
>>>       SCM alist = SCM_SIMPLE_VECTOR_REF (buckets, k);
>>>       alist = scm_fixup_weak_alist (alist, &removed);  <<<**** FAILS HERE
>>>       assert (removed <= len);
>
> Andy, isn’t this assertion bogus since N_ITEMS is updated lazily and
> thus may not correspond to the current number of items?

I don't think so; this is the procedure that is doing that lazy sweep.

Michael, how are you using this hash table?  Are you accessing it from
different pthreads?  What version of libgc are you using?  (Did you
enable parallel collection?)

Andy
-- 
http://wingolog.org/

Reply via email to