class Mongo::Semaphore
This is a semaphore implementation essentially encapsulating the sample code at ruby-doc.org/stdlib-2.0.0/libdoc/thread/rdoc/ConditionVariable.html.
@api private
Public Class Methods
new()
click to toggle source
# File lib/mongo/semaphore.rb, line 21 def initialize @lock = Mutex.new @cv = ConditionVariable.new end
Public Instance Methods
broadcast()
click to toggle source
# File lib/mongo/semaphore.rb, line 34 def broadcast @lock.synchronize do @cv.broadcast end end
signal()
click to toggle source
# File lib/mongo/semaphore.rb, line 40 def signal @lock.synchronize do @cv.signal end end
wait(timeout = nil)
click to toggle source
Waits for the semaphore to be signaled up to timeout seconds. If semaphore is not signaled, returns after timeout seconds.
# File lib/mongo/semaphore.rb, line 28 def wait(timeout = nil) @lock.synchronize do @cv.wait(@lock, timeout) end end