Class: MonitorMixin::ConditionVariable
- Inherits:
-
Object
- Object
- MonitorMixin::ConditionVariable
- Defined in:
- lib/monitor.rb
Overview
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.
Instance Method Summary collapse
-
#broadcast ⇒ Object
Wakes up all threads waiting for this lock.
-
#signal ⇒ Object
Wakes up the first thread in line waiting for this lock.
-
#wait(timeout = nil) ⇒ Object
Releases the lock held in the associated monitor and waits; reacquires the lock on wakeup.
-
#wait_until ⇒ Object
Calls wait repeatedly until the given block yields a truthy value.
-
#wait_while ⇒ Object
Calls wait repeatedly while the given block yields a truthy value.
Instance Method Details
#broadcast ⇒ Object
Wakes up all threads waiting for this lock.
140 141 142 143 |
# File 'lib/monitor.rb', line 140 def broadcast @monitor.mon_check_owner @cond.broadcast end |
#signal ⇒ Object
Wakes up the first thread in line waiting for this lock.
132 133 134 135 |
# File 'lib/monitor.rb', line 132 def signal @monitor.mon_check_owner @cond.signal end |
#wait(timeout = nil) ⇒ Object
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.
106 107 108 109 |
# File 'lib/monitor.rb', line 106 def wait(timeout = nil) @monitor.mon_check_owner @monitor.wait_for_cond(@cond, timeout) end |
#wait_until ⇒ Object
Calls wait repeatedly until the given block yields a truthy value.
123 124 125 126 127 |
# File 'lib/monitor.rb', line 123 def wait_until until yield wait end end |
#wait_while ⇒ Object
Calls wait repeatedly while the given block yields a truthy value.
114 115 116 117 118 |
# File 'lib/monitor.rb', line 114 def wait_while while yield wait end end |