Object
Akin to java.util.concurrent.Condition and intrinsic object monitors (Object#wait, Object#notify, Object#notifyAll) in Java: threads can wait (block until notified) on a condition other threads notify them about. Unlike the j.u.c. version, this one has a single waiting set.
Conditions can optionally be annotated with a description string for ease of debugging. @private
# File lib/bunny/concurrent/condition.rb, line 57 def any_threads_waiting? @mutex.synchronize { !@waiting_threads.empty? } end
# File lib/bunny/concurrent/condition.rb, line 61 def none_threads_waiting? @mutex.synchronize { @waiting_threads.empty? } end
# File lib/bunny/concurrent/condition.rb, line 32 def notify @mutex.synchronize do t = @waiting_threads.shift begin t.run if t rescue ThreadError retry end end end
# File lib/bunny/concurrent/condition.rb, line 43 def notify_all @mutex.synchronize do @waiting_threads.each do |t| t.run end @waiting_threads.clear end end
Generated with the Darkfish Rdoc Generator 2.