Issue #7923 has been reported by kosaki (Motohiro KOSAKI).

----------------------------------------
Feature #7923: Queue#push and Queue#pop makes trap safe 
https://bugs.ruby-lang.org/issues/7923

Author: kosaki (Motohiro KOSAKI)
Status: Assigned
Priority: Normal
Assignee: kosaki (Motohiro KOSAKI)
Category: lib
Target version: next minor


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


-- 
http://bugs.ruby-lang.org/