module Concurrency::InstanceMethods

Public Instance Methods

concurrency_cache() click to toggle source
# File lib/rails_core_extensions/concurrency.rb, line 109
def concurrency_cache
  self.class.concurrency_cache
end
concurrency_safe_method_locked?(method) click to toggle source
# File lib/rails_core_extensions/concurrency.rb, line 114
def concurrency_safe_method_locked?(method)
  concurrency_cache.read(concurrency_safe_method_cache_name(method)) == 'locked'
end

Private Instance Methods

concurrency_safe_method_cache_name(method) click to toggle source
# File lib/rails_core_extensions/concurrency.rb, line 131
def concurrency_safe_method_cache_name(method)
  "#{self.class.name.underscore}_concurrency_safe_instance_method_#{method}"
end
lock_concurrency_safe_method(method) click to toggle source
# File lib/rails_core_extensions/concurrency.rb, line 121
def lock_concurrency_safe_method(method)
  concurrency_cache.write(concurrency_safe_method_cache_name(method), 'locked')
end
unlock_concurrency_safe_method(method) click to toggle source
# File lib/rails_core_extensions/concurrency.rb, line 126
def unlock_concurrency_safe_method(method)
  concurrency_cache.delete(concurrency_safe_method_cache_name(method))
end