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