[#50186] SIGCHLD and Thread dead-lock problem — keiju@... (Keiju ISHITSUKA)
けいじゅ@いしつかです.
3 messages
2017/07/25
[ruby-dev:50189] Re: [Ruby trunk Bug#13768] SIGCHLD and Thread dead-lock problem
From:
keiju@... (keiju ISHITSUKA)
Date:
2017-07-27 05:54:56 UTC
List:
ruby-dev #50189
けいじゅ@いしつかです. ko1@atdot.net wrote: > Issue #13768 has been updated by ko1 (Koichi Sasada). > これ、dead-lock の定義の問題なので、ちょっと議論が要るような気がして > います。 signalで外部イベントをを待つのも, selectとかで外部入力を待っている(た めにデッドロックしているように見える)のも外部から何らかの通知を待って いることには変わらないと思いうのですが? > > Signal.trapを設定していたら常にデッドロックではない、とすべきというところでしょうか。 > > いいんかな、これで。例えば、webrick 使ってたらデッドロック検出出来な > いとか。 たしかに, SIGINTを設定しただけでデッドロックが検出できなくなるのも不便 かも知れません. シグナルに関しては, そのあとの処理内容にもよるので, trap時に何らかの指 定をすれば, デッドロックの検出をしなくなるととか? あとは, singanl専用のConditionVariable(SigCV)みたいなのを用意するとい うのもあるかも. 待つ方は SigCVでwaitして, signalハンドラ側でSigCVにsignalする. デッド ロック検知側はSigCV.waitで待っている場合はデッドロックとしない. いかがでしょう? 仕様はもっとつめる必要があるとは思いますが? __ ---------------------------------------------------->> 石塚 圭樹 <<--- ---------------------------------->> e-mail: keiju@ishitsuka.com <<---