diff --git a/CHANGELOG.md b/CHANGELOG.md index 8906f93..6c70477 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,10 @@ Changelog --------- +### 0.3.2 February 15, 2022 +- Use `redis.exists?` instead of `redis.exists`. +- Fix deprecated calling commands on `Redis` inside `Redis #pipelined`. + ### 0.3.1 April 17, 2016 - Fix `sem.lock(0)` bug (thanks eugenk!). diff --git a/lib/redis/semaphore.rb b/lib/redis/semaphore.rb index 461fa72..e260b71 100644 --- a/lib/redis/semaphore.rb +++ b/lib/redis/semaphore.rb @@ -105,22 +105,22 @@ def locked?(token = nil) def signal(token = 1) token ||= generate_unique_token - @redis.multi do - @redis.hdel grabbed_key, token - @redis.lpush available_key, token + @redis.multi do |transaction| + transaction.hdel grabbed_key, token + transaction.lpush available_key, token - set_expiration_if_necessary + set_expiration_if_necessary(transaction) end end def exists? - @redis.exists(exists_key) + @redis.exists?(exists_key) end def all_tokens - @redis.multi do - @redis.lrange(available_key, 0, -1) - @redis.hkeys(grabbed_key) + @redis.multi do |transaction| + transaction.lrange(available_key, 0, -1) + transaction.hkeys(grabbed_key) end.flatten end @@ -184,23 +184,23 @@ def simple_expiring_mutex(key_name, expires_in) def create! @redis.expire(exists_key, 10) - @redis.multi do - @redis.del(grabbed_key) - @redis.del(available_key) + @redis.multi do |transaction| + transaction.del(grabbed_key) + transaction.del(available_key) @resource_count.times do |index| - @redis.rpush(available_key, index) + transaction.rpush(available_key, index) end - @redis.set(version_key, API_VERSION) - @redis.persist(exists_key) + transaction.set(version_key, API_VERSION) + transaction.persist(exists_key) - set_expiration_if_necessary + set_expiration_if_necessary(transaction) end end - def set_expiration_if_necessary + def set_expiration_if_necessary(transaction) if @expiration [available_key, exists_key, version_key].each do |key| - @redis.expire(key, @expiration) + transaction.expire(key, @expiration) end end end diff --git a/redis-semaphore.gemspec b/redis-semaphore.gemspec index 4c7d2ce..08f62e6 100644 --- a/redis-semaphore.gemspec +++ b/redis-semaphore.gemspec @@ -1,6 +1,6 @@ Gem::Specification.new do |s| s.name = 'redis-semaphore' - s.version = '0.3.1' + s.version = '0.3.2' s.summary = 'Implements a distributed semaphore or mutex using Redis.' s.authors = ['David Verhasselt'] s.email = 'david@crowdway.com'