From: keiju@... (keiju ISHITSUKA) Date: 2017-12-18T22:09:59+09:00 Subject: [ruby-dev:50364] Re: SIGCHLD and Thread dead-lock problem けいじゅ@いしつかです. 情報ありがとうございます. 試してみましたが, 問題は解消していませんでした... Tomoyuki Chikanaga wrote: > 再現コードはやや異なりますが、 [Bug #14181] と類似のようですので、 > r61274, r61302 で修正されている可能性があるのではないかと思います。 > 2017年7月26日 0:51 Keiju ISHITSUKA : > > けいじゅ@いしつかです. > > 下記のプログラムを実行すると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: keiju@ishitsuka.com <<--- __ ---------------------------------------------------->> 石塚 圭樹 <<--- ---------------------------------->> e-mail: keiju@ishitsuka.com <<---