遠藤です。

2011年6月12日18:36 SASADA Koichi <ko1 / atdot.net>:
>  IRC で,
>
>  timeout(n){
>    ここでデッドロック
>  }
>
> なコードはありそう,と遠藤さんに教えてもらいました.

このデッドロックを報告しないのが本当にいいのかは議論の余地がありそう
ですけどね。


>  外部仕様とか,性能の問題とかありそうなんで,例えば $DEBUG の時にこの
> チェックを有効にする,なんてのはどうか,と考えてみました.
>
> # で,デフォルトでは,やっぱり「全部ブロックしちゃったよ」チェックを
> # なんらかの方法で動かす.

$DEBUG にしたほうが速い、ということですかね。それもなんか微妙……。


Thread.stop や Mutex#sleep がデッドロック検知の対象でなくなったため
に、以下のコードのデッドロックが検知できなくなりました。
これはまずいかも。

  q = Queue.new
  Thread.new { q.pop };
  q.pop

-- 
Yusuke Endoh <mame / tsg.ne.jp>