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 24 def initialize @lock = Mutex.new @cv = ::ConditionVariable.new end
Public Instance Methods
broadcast()
click to toggle source
# File lib/mongo/semaphore.rb, line 37 def broadcast @lock.synchronize do @cv.broadcast end end
signal()
click to toggle source
# File lib/mongo/semaphore.rb, line 43 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 31 def wait(timeout = nil) @lock.synchronize do @cv.wait(@lock, timeout) end end