class SmartCore::Container::ArbitraryLock

@api private @since 0.1.0

Public Class Methods

new() click to toggle source

@return [void]

@api private @since 0.1.0

# File lib/smart_core/container/arbitrary_lock.rb, line 10
def initialize
  @lock = Mutex.new
end

Public Instance Methods

thread_safe() { |: synchronize(&block)| ... } click to toggle source

@param block [Proc] @return [Any]

@api private @since 0.1.0

# File lib/smart_core/container/arbitrary_lock.rb, line 19
def thread_safe(&block)
  @lock.owned? ? yield : @lock.synchronize(&block)
end