Issue #7455 has been reported by tarui (Masaya Tarui).

----------------------------------------
Bug #7455: Queue#popで待っている間にtrapに入りその時にQueue#pushされると、Queue#popから戻ってこなくなる。
https://bugs.ruby-lang.org/issues/7455

Author: tarui (Masaya Tarui)
Status: Assigned
Priority: Normal
Assignee: ko1 (Koichi Sasada)
Category: core
Target version: 2.0.0
ruby -v: ruby 2.0.0dev (2012-11-28 trunk 37937) [x86_64-linux]


以下スクリプトを実行すると期待したように終わらずに、deadlockしてしまいます。
ささださんよろしく。
--

require 'thread'

que = Queue.new
th = Thread.new{
  sleep 0.1 
  Process.kill(:INT,$$)
  sleep 0.1 
  que.push 2
}
Signal.trap :INT do
  p :trap_task
  123456**100000 / 456 ** 10000
  p :trap_task_end
end
puts "que.pop"
p que.pop
puts "success!"



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