class ConditionVariable
Public Instance Methods
wait(mutex, timeout=nil)
click to toggle source
# File lib/rbot/compat19.rb, line 11 def wait(mutex, timeout=nil) begin # TODO: mutex should not be used @waiters_mutex.synchronize do @waiters.push(Thread.current) end if timeout elapsed = mutex.sleep timeout if timeout > 0.0 unless timeout > 0.0 and elapsed < timeout t = @waiters_mutex.synchronize { @waiters.delete Thread.current } signal unless t # if we got notified, pass it along raise TimeoutError, "wait timed out" end else mutex.sleep end end nil end