FIXME: This isn't documented in Nutshell.
Since MonitorMixin#new_cond returns a ConditionVariable, and the example above calls while_wait and signal, this class should be documented.
Namespace
Methods
- B
- N
- S
- W
Class Public methods
new(monitor)
Link
Instance Public methods
broadcast()
Link
Wakes up all threads waiting for this lock.
signal()
Link
Wakes up the first thread in line waiting for this lock.
wait(timeout = nil)
Link
Releases the lock held in the associated monitor and waits; reacquires the lock on wakeup.
If timeout
is given, this method returns after
timeout
seconds passed, even if no other thread doesn't
signal.
# File lib/monitor.rb, line 106 def wait(timeout = nil) @monitor.__send__(:mon_check_owner) count = @monitor.__send__(:mon_exit_for_cond) begin @cond.wait(@monitor.instance_variable_get(:@mon_mutex), timeout) return true ensure @monitor.__send__(:mon_enter_for_cond, count) end end
wait_until()
Link
Calls wait repeatedly until the given block yields a truthy value.