Project

General

Profile

Feature #7923

Queue#push and Queue#pop makes trap safe

Added by Motohiro KOSAKI over 3 years ago. Updated about 3 years ago.

Status:
Closed
Priority:
Normal
[ruby-core:52749]

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 [ruby-core:57255] Updated by Koichi Sasada about 3 years ago

  • Status changed from Assigned to Closed

Fixed by C-ext thread.

Also available in: Atom PDF