class Concurrent::Synchronization::MonitorLockableObject

@!macro internal_implementation_note
@!visibility private

def initialize(*defaults)

def initialize(*defaults)
  super(*defaults)
  @__Lock__      = ::Monitor.new
  @__Condition__ = @__Lock__.new_cond
end

def ns_wait(timeout = nil)

def ns_wait(timeout = nil)
  @__Condition__.wait timeout
  self
end

def synchronize # TODO may be a problem with lock.synchronize { lock.wait }

TODO may be a problem with lock.synchronize { lock.wait }
def synchronize # TODO may be a problem with lock.synchronize { lock.wait }
  @__Lock__.synchronize { yield }
end