module SyncAttr::Attributes

Public Class Methods

included(base) click to toggle source
# File lib/sync_attr/attributes.rb, line 84
def self.included(base)
  base.extend(SyncAttr::Attributes::ClassMethods)
end

Private Instance Methods

sync_attr_sync(attribute, &block) click to toggle source

Thread safe way of creating the instance sync

# File lib/sync_attr/attributes.rb, line 91
def sync_attr_sync(attribute, &block)
  mutex_var_name = "@sync_attr_#{attribute}".to_sym
  instance_variable_set(mutex_var_name, Mutex.new) unless instance_variable_defined?(mutex_var_name)
  instance_variable_get(mutex_var_name).synchronize(&block)
end