From: "authorNari (Narihiro Nakamura)" Date: 2012-11-28T13:02:01+09:00 Subject: [ruby-core:50242] [ruby-trunk - Bug #6416] Deadlock when calling Thread#join from signal interrupt context Issue #6416 has been updated by authorNari (Narihiro Nakamura). kosaki (Motohiro KOSAKI) wrote: > Nari, > > In your case, main thread and trap handler uses the same mutex and it is racy and deadlockable. Even if I revert my change, it wouldn't work. I see, Thanks! ---------------------------------------- Bug #6416: Deadlock when calling Thread#join from signal interrupt context https://bugs.ruby-lang.org/issues/6416#change-34064 Author: ender672 (Timothy Elliott) Status: Closed Priority: Normal Assignee: kosaki (Motohiro KOSAKI) Category: Target version: 2.0.0 ruby -v: ruby 2.0.0dev (2012-05-09 trunk 35598) [x86_64-linux] =begin The interpreter can deadlock when calling Thread#join both from the main context and from the signal handler context. t = Thread.new{ sleep 3 } Signal.trap "SIGINT" do t.join end puts 'Press ctrl + c now' t.join The above will deadlock on linux x86_64 with ruby 1.9.x and ruby trunk. It works fine with ruby 1.8.7-p352 and JRuby. =end -- http://bugs.ruby-lang.org/