class Qonfig::Settings::Callbacks

@api private @since 0.13.0

Attributes

callbacks[R]

@return [Array<Proc>]

@api private @since 0.13.0

Public Class Methods

new() click to toggle source

@return [void]

@api private @since 0.13.0

# File lib/qonfig/settings/callbacks.rb, line 16
def initialize
  @callbacks = []
  @lock = Mutex.new
end

Public Instance Methods

add(callback) click to toggle source

@param callback [Proc, Qonfig::Settings::Callbacks, call] @return [void]

@api private @since 0.13.0

# File lib/qonfig/settings/callbacks.rb, line 34
def add(callback)
  thread_safe { callbacks << callback }
end
call() click to toggle source

@return [void]

@api private @since 0.13.0

# File lib/qonfig/settings/callbacks.rb, line 25
def call
  thread_safe { callbacks.each(&:call) }
end

Private Instance Methods

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

@return [Any]

@api private @since 0.14.0

# File lib/qonfig/settings/callbacks.rb, line 50
def thread_safe(&block)
  @lock.owned? ? yield : @lock.synchronize(&block)
end