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.
139 140 141 142 |
# File 'lib/monitor.rb', line 139 def broadcast @monitor.mon_check_owner @cond.broadcast end |
#signal ⇒ Object
Wakes up the first thread in line waiting for this lock.
131 132 133 134 |
# File 'lib/monitor.rb', line 131 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.
105 106 107 108 |
# File 'lib/monitor.rb', line 105 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.
122 123 124 125 126 |
# File 'lib/monitor.rb', line 122 def wait_until until yield wait end end |
#wait_while ⇒ Object
Calls wait repeatedly while the given block yields a truthy value.
113 114 115 116 117 |
# File 'lib/monitor.rb', line 113 def wait_while while yield wait end end |