class Qonfig::Settings::Lock

@api private @since 0.2.0

Attributes

access_lock[R]

@return [Mutex]

@api private @since 0.2.0

definition_lock[R]

@return [Mutex]

@api private @since 0.2.0

merge_lock[R]

@return [Mutex]

@api private @since 0.2.0

Public Class Methods

new() click to toggle source

@api private @since 0.2.0

# File lib/qonfig/settings/lock.rb, line 8
def initialize
  @definition_lock = Mutex.new
  @access_lock = Mutex.new
  @merge_lock = Mutex.new
end

Public Instance Methods

thread_safe_access() { |: synchronize(&instructions)| ... } click to toggle source

@param instructions [Proc] @return [Object]

@api private @since 0.2.0

# File lib/qonfig/settings/lock.rb, line 28
def thread_safe_access(&instructions)
  access_lock.owned? ? yield : access_lock.synchronize(&instructions)
end
thread_safe_definition() { |: synchronize(&instructions)| ... } click to toggle source

@param instructions [Proc] @return [Object]

@api private @since 0.2.0

# File lib/qonfig/settings/lock.rb, line 19
def thread_safe_definition(&instructions)
  definition_lock.owned? ? yield : definition_lock.synchronize(&instructions)
end
thread_safe_merge() { |: synchronize(&instructions)| ... } click to toggle source

@param instructions [Proc] @return [Object]

@api private @since 0.2.0

# File lib/qonfig/settings/lock.rb, line 37
def thread_safe_merge(&instructions)
  merge_lock.owned? ? yield : merge_lock.synchronize(&instructions)
end