- Inheritance
- < Object
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 } }
Methods
Class
Visibility | Signature |
---|---|
public | new () |
Instance
Visibility | Signature |
---|---|
public | broadcast () |
public | signal () |
public | wait (mutex) |
Class Method Detail
new()
Creates a new ConditionVariable
Instance Method Detail
broadcast()
Wakes up all threads waiting for this lock.
signal()
Wakes up the first thread in line waiting for this lock.
wait(mutex)
Releases the lock held in mutex and waits; reacquires the lock on wakeup.