Feature #7923

Queue#push and Queue#pop makes trap safe

Added by Motohiro KOSAKI about 2 years ago. Updated over 1 year ago.

[ruby-core:52749]
Status:Closed
Priority:Normal
Assignee:Motohiro KOSAKI

Description

Currently, following program don't work because q.push raises an exception.
However, it would be nice if queue is trap safe and Queue#push and Queue#pop can be called from trap handler.


require "thread"

q = Queue.new

trap("USR1") {
q.push(nil)
}

Process.kill :USR1, $$
sleep

History

#1 Updated by Koichi Sasada over 1 year ago

  • Status changed from Assigned to Closed

Fixed by C-ext thread.

Also available in: Atom PDF