quoting Nicolas Cannasse <[EMAIL PROTECTED]>:

> > It seems it is called a few times in parallel, though. I see two options 
> > for what's happening:
> >  1) boehm-gc indeed somehow finalizes things in parallel (although i dont 
> > see that would make much sense)
> 
> I think that Boehm GC can perform parallel sweep phase, and thus 
> finalizers might be called in parallel threads. You have to make your 
> global list MT-safe by using a lock.
> 
> Try to include (NEKO)/vm/context.h and you can use context_lock_new 
> context_lock , context_release and context_lock_delete.

Ok, i had read up on Boehm and noticed too that he thinks a lot about "mostly 
parallel finalizers" :)
Thanks for the hint with your context locks. I've integrated that in my 
nekobind, now the bug went away.

Which is great, because it's been a bugging me for a long time, only today i 
managed to make it somewhat reproducible (by using many threads).

Thanks, Nic. It's great to be able to tap into your knowledge from time to time 
;)

-dan

-- 
Neko : One VM to run them all
(http://nekovm.org)

Reply via email to