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