class Concurrent::Synchronization::MutexLockableObject
@!visibility private @!macro internal_implementation_note
Public Class Methods
Source
# File lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb, line 30 def initialize super() @__Lock__ = ::Mutex.new @__Condition__ = ::ConditionVariable.new end
Calls superclass method
Concurrent::Synchronization::Object::new
Public Instance Methods
Source
# File lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb, line 36 def initialize_copy(other) super @__Lock__ = ::Mutex.new @__Condition__ = ::ConditionVariable.new end
Calls superclass method
Protected Instance Methods
Source
# File lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb, line 52 def ns_wait(timeout = nil) @__Condition__.wait @__Lock__, timeout self end
Source
# File lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb, line 44 def synchronize if @__Lock__.owned? yield else @__Lock__.synchronize { yield } end end