class WorkflowRb::SingleNodeLockProvider

Public Class Methods

new() click to toggle source
# File lib/workflow_rb/services/single_node_lock_provider.rb, line 6
def initialize
  @semaphore = Mutex.new
  @named_locks = []
end

Public Instance Methods

acquire_lock(id) click to toggle source
# File lib/workflow_rb/services/single_node_lock_provider.rb, line 11
def acquire_lock(id)
  @semaphore.synchronize do
    if @named_locks.include?(id)
      return false
    end
    @named_locks << id
    return true
  end
end
release_lock(id) click to toggle source
# File lib/workflow_rb/services/single_node_lock_provider.rb, line 21
def release_lock(id)
  @semaphore.synchronize do
    @named_locks.delete(id)
  end
end