class LightIO::Library::Thread::ConditionVariable
Public Class Methods
new()
click to toggle source
# File lib/lightio/library/thread.rb, line 291 def initialize @queue = LightIO::Library::Queue.new end
Public Instance Methods
broadcast()
click to toggle source
# File lib/lightio/library/thread.rb, line 296 def broadcast signal until @queue.num_waiting == 0 self end
signal()
click to toggle source
# File lib/lightio/library/thread.rb, line 301 def signal @queue << true unless @queue.num_waiting == 0 self end
wait(mutex, timeout=nil)
click to toggle source
# File lib/lightio/library/thread.rb, line 306 def wait(mutex, timeout=nil) mutex.unlock begin LightIO::Library::Timeout.timeout(timeout) do @queue.pop end rescue Timeout::Error nil end mutex.lock self end