Project

General

Profile

Actions

Bug #6128

closed

Thread#run does not work within signal handler

Added by mperham (Mike Perham) over 12 years ago. Updated over 12 years ago.

Status:
Rejected
Assignee:
-
Target version:
-
ruby -v:
ruby 1.9.3p125 (2012-02-16 revision 34643) [x86_64-darwin11.3.0]
Backport:
[ruby-core:43168]

Description

If I stop Thread.main, calling Thread.main.run in a signal handler does not wake up the main thread.

Please see this gist with a simple reproducible example:
https://gist.github.com/2014773

Updated by ko1 (Koichi Sasada) over 12 years ago

  • Status changed from Open to Rejected

trap handler (registered block) run on main thread. So Thread#run for main thread doesn't work.

You should use other ways to communicate trap handler and main thread, for example, Queue.

$q = Queue.new
trap(:INT){$q.push nil}

...
$q.pop # wait for trap handler

Actions

Also available in: Atom PDF

Like0
Like0