[ruby-dev:50359] Re: SIGCHLD and Thread dead-lock problem

From: Tomoyuki Chikanaga <nagachika00@...>
Date: 2017-12-18 01:56:23 UTC
List: ruby-dev #50359
nagachika です。

再現コードはやや異なりますが、 [Bug #14181] と類似のようですので、
r61274, r61302 で修正されている可能性があるのではないかと思います。



2017年7月26日 0:51 Keiju ISHITSUKA <keiju@ishitsuka.com>:

> けいじゅ@いしつかです.
>
> 下記のプログラムを実行すると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 <<---
>

In This Thread