Class: Kronos::Runner::Synchronous::LockManager

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/kronos/runner/synchronous/lock_manager.rb

Instance Method Summary collapse

Constructor Details

#initialize(storage) ⇒ LockManager

Returns a new instance of LockManager.



9
10
11
# File 'lib/kronos/runner/synchronous/lock_manager.rb', line 9

def initialize(storage)
  @storage = storage
end

Instance Method Details

#lock_and_execute(task_id) ⇒ Object



13
14
15
16
17
18
19
20
# File 'lib/kronos/runner/synchronous/lock_manager.rb', line 13

def lock_and_execute(task_id)
  return if locked_task?(task_id)
  lock_id = lock_task(task_id)
  return unless check_lock(task_id, lock_id)
  yield
ensure
  release_lock(task_id)
end