Module: NonBlockingLock::ClassMethods

Defined in:
lib/non_blocking_lock/base.rb

Instance Method Summary collapse

Instance Method Details

#non_blocking_lock(*args, &block) ⇒ Object

name - lock name wait_time - default 1.second &block to execute if lock obtained return false if failed to get lock



10
11
12
13
14
15
16
# File 'lib/non_blocking_lock/base.rb', line 10

def non_blocking_lock( *args, &block )
  if connection.respond_to?( :non_blocking_lock )
    connection.non_blocking_lock( *args, &block )
  else
    raise ::LockFailed.new( "Not implemented." )
  end
end

#non_blocking_lock!(*args, &block) ⇒ Object

name - lock name wait_time - default 1.second &block to execute if lock obtained raises exception if failed to get lock



22
23
24
25
26
# File 'lib/non_blocking_lock/base.rb', line 22

def non_blocking_lock!( *args, &block )
  unless non_blocking_lock( *args, &block )
    raise ::LockFailed.new( "Failed to obtain a lock." )
  end
end