Issue #362 has been reported by Stanislav Senotrusov. ---------------------------------------- Bug #362: Signal handling meets threading http://redmine.ruby-lang.org/issues/show/362 Author: Stanislav Senotrusov Status: Open Priority: Normal Assigned to: Category: Target version: I found a bug and some workaround while trying to implement termination watchdog. ruby 1.8.6 (2007-09-24 patchlevel 111) [i486-linux] on Ubuntu 8.04 Bug: # Run me and press Ctrl+C Signal.trap('INT') do Thread.new do puts "Got SIGINT" Thread.main.join(1) puts "Timeout is never reached!" end end sleep 100 And a workaround # Run me and press Ctrl+C killer = Thread.new do Thread.stop puts "Got SIGINT" Thread.main.join(1) puts "Timeout is reached!" Thread.main.raise "Timeout!" end Signal.trap('INT') do killer.run end sleep 100 # ------------------------------ ---------------------------------------- http://redmine.ruby-lang.org