From: KOSAKI Motohiro Date: 2011-01-25T07:22:08+09:00 Subject: [ruby-dev:43097] Re: pthread_cond を用いたConditionVariable >> 1. deadlockのチェックができていない. thread->vm->sleeper の辺りが怪し >> いと思ったのですが, うまくいきませんでした. > > rb_cv_wait_forever()に以下の3行足したら、deadlock 検知してくれました。 > > th->vm->sleeper++; > rb_check_deadlock(th->vm); > if (RUBY_VM_INTERRUPTED(th)) > goto out; わはは。大嘘でした。CVはlock離すのと寝るのとを一息にやるので false positive うみますね。