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