Project

General

Profile

Bug #7455

Queue#popで待っている間にtrapに入りその時にQueue#pushされると、Queue#popから戻ってこなくなる。

Added by tarui (Masaya Tarui) over 7 years ago. Updated over 7 years ago.

Status:
Closed
Priority:
Normal
Target version:
ruby -v:
ruby 2.0.0dev (2012-11-28 trunk 37937) [x86_64-linux]
Backport:
[ruby-dev:46654]

Description

以下スクリプトを実行すると期待したように終わらずに、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!"

Also available in: Atom PDF