class Concurrent::Synchronization::MonitorLockableObject

@!macro internal_implementation_note
@!visibility private

def initialize

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

def initialize_copy(other)

def initialize_copy(other)
  super
  @__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