class Dry::Effects::Providers::Lock::Backend

Public Instance Methods

lock(key, meta) click to toggle source
# File lib/dry/effects/providers/lock.rb, line 28
def lock(key, meta)
  mutex.synchronize do
    if locked?(key)
      nil
    else
      locks[key] = Handle.new(key, meta)
    end
  end
end
locked?(key) click to toggle source
# File lib/dry/effects/providers/lock.rb, line 38
def locked?(key)
  locks.key?(key)
end
meta(key) click to toggle source
# File lib/dry/effects/providers/lock.rb, line 53
def meta(key)
  meta = Undefined.map(locks.fetch(key, Undefined), &:meta)
  Undefined.default(meta, nil)
end
unlock(handle) click to toggle source
# File lib/dry/effects/providers/lock.rb, line 42
def unlock(handle)
  mutex.synchronize do
    if locked?(handle.key)
      locks.delete(handle.key)
      true
    else
      false
    end
  end
end