Project

General

Profile

Actions

Bug #13768

closed

SIGCHLD and Thread dead-lock problem

Added by keiju (Keiju Ishitsuka) over 6 years ago. Updated over 3 years ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-dev:50186]
Tags:

Description

けいじゅ@いしつかです.

下記のプログラムを実行するとThreadがデッドロックしたと例外が発生します.

コメント部分をはずせば, デッドロックはしません

シグナルのtrapが絡むときのデッドロックの検知に問題があるのではないかと
思いますがいかがでしょう?

% ruby -v
ruby 2.5.0dev (2017-07-25 trunk 59417) [i686-linux]
q = Queue.new
p = Queue.new

trap(:SIGCHLD) do
  puts "SIGCHLD"
  q.push 1
end

Thread.start do
  Process.spawn("/bin/sleep 1")
end

#Thread.start do
#  loop do
#    sleep 100
#  end
#end

th = Thread.start{
  p.push q.pop
}

p.pop

__
---------------------------------------------------->> 石塚 圭樹 <<---
---------------------------------->> e-mail: <<---

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0