class EventMachine::Synchrony::Thread::ConditionVariable

def wait(mutex, timeout=nil)


even if no other thread doesn't signal.
If +timeout+ is given, this method returns after +timeout+ seconds passed,

Releases the lock held in +mutex+ and waits; reacquires the lock on wakeup.
def wait(mutex, timeout=nil)
  current = Fiber.current
  pair = [mutex, current]
  @waiters << pair
  mutex.sleep timeout do
    @waiters.delete pair
  end
  self
end