Issue with rb_barrier_wait() when running within a Thread.new { }

Hi, in my C extension I use rb_barrier_wait(MY_BARRIER) in a method.
It works perfectly but I’ve realized of a case in which it gets
blocked:

Thread.new do
MyExten.my_method
end

In this case the C function rb_barrier_wait(MY_BARRIER) gets blocked
(note that I don’t call if from other place). So this seems a conflict
of Thread and rb_barrier_wait(), it seems that they have a conflict
with a shared resource. Am I right? any tip about this please?

Thanks a lot.

PS: rb_barrier_xxxx() stuff is contained in thread.c file.

I’ve fixed this issue by replacing rb_barrier with rb_mutex at C level.

2012/7/4 Iñaki Baz C. [email protected]: