Method: DynaModel::Extensions::Lock.lock
- Defined in:
- lib/dyna_model/extensions/lock.rb
.lock(lock_name, options = {}, &block) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/dyna_model/extensions/lock.rb', line 28 def self.lock(lock_name, ={}, &block) lock_acquired = false if lock_obj_acquired = self.acquire(lock_name, ) lock_acquired = true if block begin result = (block.arity == 1) ? block.call(lock_obj_acquired) : block.call ensure release(lock_name) if lock_acquired end end result end end |