class RedisLock class IfOpen < Semaphore def call(&block) return :locked if lock.locked? _perform(&block) end end end