From: "authorNari (Narihiro Nakamura)" Date: 2012-11-28T11:31:09+09:00 Subject: [ruby-core:50239] [ruby-trunk - Bug #6416] Deadlock when calling Thread#join from signal interrupt context Issue #6416 has been updated by authorNari (Narihiro Nakamura). Hello I need sometimes to call Thread#join in Signal.trap when I want to implement safe termination in a server. For instance: https://gist.github.com/4158509 Is it a wrong use case in the first place? Thanks. ---------------------------------------- Bug #6416: Deadlock when calling Thread#join from signal interrupt context https://bugs.ruby-lang.org/issues/6416#change-34061 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/