class MonitorMixin::ConditionVariable
FIXME: Dies ist in Nutshell nicht dokumentiert.
Da MonitorMixin.new_cond eine ConditionVariable zurückgibt und das obige Beispiel while_wait und signal aufruft, sollte diese Klasse dokumentiert werden.
Öffentliche Instanzmethoden
Source
# File ext/monitor/lib/monitor.rb, line 139 def broadcast @monitor.mon_check_owner @cond.broadcast end
Weckt alle Threads auf, die auf diese Sperre warten.
Source
# File ext/monitor/lib/monitor.rb, line 131 def signal @monitor.mon_check_owner @cond.signal end
Weckt den ersten Thread in der Warteschlange auf, der auf diese Sperre wartet.
Source
# File ext/monitor/lib/monitor.rb, line 105 def wait(timeout = nil) @monitor.mon_check_owner @monitor.wait_for_cond(@cond, timeout) end
Gibt die vom zugehörigen Monitor gehaltene Sperre frei und wartet; erwirbt die Sperre nach dem Aufwecken wieder.
Wenn timeout angegeben ist, kehrt diese Methode nach Ablauf von timeout Sekunden zurück, auch wenn kein anderer Thread ein Signal sendet.
Source
# File ext/monitor/lib/monitor.rb, line 122 def wait_until until yield wait end end
Ruft wait wiederholt auf, bis der angegebene Block einen wahrheitsgemäßen Wert zurückgibt.
Source
# File ext/monitor/lib/monitor.rb, line 113 def wait_while while yield wait end end
Ruft wait wiederholt auf, solange der angegebene Block einen wahrheitsgemäßen Wert zurückgibt.