From: "kosaki (Motohiro KOSAKI)" Date: 2012-11-07T12:23:01+09:00 Subject: [ruby-core:49012] [ruby-trunk - Bug #6634] Deadlock with join and ConditionVariable Issue #6634 has been updated by kosaki (Motohiro KOSAKI). Hi mame-san, ko1 found the second case (i.e. below) is a his regression since October. He told me he plan to fix soon. > $ ruby -e 'loop { system("./ruby lol2.rb > t") || break }' > :8:in `lock': deadlock; recursive locking (ThreadError) > from :8:in `synchronize' > from /home/mame/work/local/lib/ruby/2.0.0/thread.rb:69:in `wait' And I couldn't reproduce this issue at commit r37074 (Oct 3). So I think we haven't reproduce an original issue yet. ---------------------------------------- Bug #6634: Deadlock with join and ConditionVariable https://bugs.ruby-lang.org/issues/6634#change-32531 Author: meh. (meh. I don't care) Status: Assigned Priority: Normal Assignee: ko1 (Koichi Sasada) Category: core Target version: 2.0.0 ruby -v: ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux] I'm getting a fatal deadlock in one of my gems, it's a simple threadpool implementation. The library works both in Rubinius and JRuby, so I guess it's a bug. The gem is here: https://github.com/meh/ruby-threadpool The example that crashes is attached. Basically it raises a fatal deadlock if you join a thread and then call ConditionVariable#wait, I'm not 100% sure if the bug is in the ConditionVariable or what, all I know is that it happens in that situation and that it works on Rubinius and JRuby. -- http://bugs.ruby-lang.org/