まつもと ゆきひろです

In message "Re: [ruby-dev:35349] Re: deadlock detection for 1.9"
    on Fri, 4 Jul 2008 12:15:38 +0900, Nobuyoshi Nakada <nobu / ruby-lang.org> writes:

|> |m = Mutex.new
|> |Thread.new { m.lock; sleep 2 }
|> |sleep 1; m.lock

|> なんでsleep foreverになるんでしょうね。確かにおかしい気がし
|> ます。
|
|1.8だとスレッドがどのMutexをロックしてるかは知りませんから。
|Mutex#lockで単にstopするのではなく、lockしているthreadをjoinする
|ことで待つようにすれば終了するようにできます。

うーん、このパッチに寄る変更が及ぼす影響は私にはよくわからな
いのですが、影響が少ないようでしたらコミットしてほしいです。
リリース直前のようなので今はタイミングがまずいかな。