Project

General

Profile

Actions

Bug #6699

closed

rb_barrier_wait() gets blocked when running within a Thread.new { }

Added by ibc (Iñaki Baz Castillo) over 12 years ago. Updated over 12 years ago.

Status:
Closed
Assignee:
-
Target version:
ruby -v:
ruby 2.0.0dev (2012-07-03 trunk 36272) [x86_64-linux]
Backport:
[ruby-core:46176]

Description

In my Ruby 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 the new Thread and rb_barrier_wait(), it seems that they both try to access to the same shared resource. Is it the expected behavior?

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0