Type:
Class

ConditionVariable objects augment class Mutex. Using condition variables, it is possible to suspend while in the middle of a critical section until a resource becomes available.

Example:

require 'thread'

mutex = Mutex.new
resource = ConditionVariable.new

a = Thread.new {
  mutex.synchronize {
    # Thread 'a' now needs the resource
    resource.wait(mutex)
    # 'a' can now have the resource
  }
}

b = Thread.new {
  mutex.synchronize {
    # Thread 'b' has finished using the resource
    resource.signal
  }
}
signal

signal() Instance Public methods Wakes up the first thread in line waiting for

2015-04-01 16:18:48
wait

wait(mutex, timeout=nil) Instance Public methods Releases the lock held in mutex

2015-04-01 16:25:41
broadcast

broadcast() Instance Public methods Wakes up all threads waiting for this lock

2015-04-01 16:11:34
new

new() Class Public methods Creates a new

2015-04-01 16:09:12