class Concurrent::Synchronization::MonitorLockableObject

@!visibility private @!macro internal_implementation_note

Public Class Methods

new(*defaults) click to toggle source
Calls superclass method Concurrent::Synchronization::Object.new
# File lib/concurrent/synchronization/mutex_lockable_object.rb, line 58
def initialize(*defaults)
  super(*defaults)
  @__Lock__      = ::Monitor.new
  @__Condition__ = @__Lock__.new_cond
end

Protected Instance Methods

ns_wait(timeout = nil) click to toggle source
# File lib/concurrent/synchronization/mutex_lockable_object.rb, line 70
def ns_wait(timeout = nil)
  @__Condition__.wait timeout
  self
end
synchronize() { || ... } click to toggle source
# File lib/concurrent/synchronization/mutex_lockable_object.rb, line 66
def synchronize # TODO may be a problem with lock.synchronize { lock.wait }
  @__Lock__.synchronize { yield }
end