Project

General

Profile

Bug #362

Signal handling meets threading

Added by senotrusov (Stanislav Senotrusov) about 10 years ago. Updated over 7 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
ruby -v:
-
[ruby-core:17970]

Description

=begin
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
# ------------------------------
=end

History

#1 Updated by marcandre (Marc-Andre Lafortune) about 9 years ago

  • Status changed from Open to Closed
  • ruby -v set to -

=begin
Closing this issue since it appears to be fixed in trunk.
=end

Also available in: Atom PDF