Module: WithAdvisoryLock::Concern::ClassMethods

Defined in:
lib/with_advisory_lock/concern.rb

Instance Method Summary collapse

Instance Method Details

#advisory_lock_exists?(lock_name) ⇒ Boolean

Returns:

  • (Boolean)


18
19
20
21
# File 'lib/with_advisory_lock/concern.rb', line 18

def advisory_lock_exists?(lock_name)
  impl = impl_class.new(connection, lock_name, 0)
  impl.already_locked? || !impl.yield_with_lock { true }
end

#current_advisory_lockObject



23
24
25
# File 'lib/with_advisory_lock/concern.rb', line 23

def current_advisory_lock
  WithAdvisoryLock::Base.lock_stack.first
end

#with_advisory_lock(lock_name, timeout_seconds = nil, &block) ⇒ Object



13
14
15
16
# File 'lib/with_advisory_lock/concern.rb', line 13

def with_advisory_lock(lock_name, timeout_seconds=nil, &block)
  impl = impl_class.new(connection, lock_name, timeout_seconds)
  impl.with_advisory_lock_if_needed(&block)
end