Bug #3212: ConditionVariable may become inconsistent for interrupted threads
http://redmine.ruby-lang.org/issues/show/3212

Author: Sylvain Joyeux
Status: Open, Priority: High
Category: core
ruby -v: ruby 1.9.1p378 (2010-01-10 revision 26273) [x86_64-linux]

While tracking another issue with ConditionVariable, I realized that ConditionVariable#wait assumes that the waking-up side (#signal and #broadcast) will remove the thread from the list of waiters.

Unfortunately, Mutex#sleep may return right away if an interrupt is set for the thread, in which case the thread will stay in the condition variable's waiting list.


----------------------------------------
http://redmine.ruby-lang.org