From f12eced6c1b1c3626bd12ed0602f7c9ed0c709ef Mon Sep 17 00:00:00 2001 From: brianswko Date: Mon, 27 Oct 2025 13:48:50 -0700 Subject: [PATCH 1/4] Handle redis.multi deprecations --- lib/redis/semaphore.rb | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/lib/redis/semaphore.rb b/lib/redis/semaphore.rb index 461fa72..fceb7f7 100644 --- a/lib/redis/semaphore.rb +++ b/lib/redis/semaphore.rb @@ -105,11 +105,11 @@ 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 @@ -118,9 +118,9 @@ def exists? 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,24 @@ 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 = nil) + redis = transaction || @redis if @expiration [available_key, exists_key, version_key].each do |key| - @redis.expire(key, @expiration) + redis.expire(key, @expiration) end end end From be4862a0ba0ea55cfba9fe75138ef43c0d6a8aed Mon Sep 17 00:00:00 2001 From: brianswko Date: Mon, 27 Oct 2025 16:56:55 -0700 Subject: [PATCH 2/4] Handle redis.blpop deprecation --- lib/redis/semaphore.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/redis/semaphore.rb b/lib/redis/semaphore.rb index fceb7f7..23b808a 100644 --- a/lib/redis/semaphore.rb +++ b/lib/redis/semaphore.rb @@ -62,7 +62,7 @@ def lock(timeout = nil) if timeout.nil? || timeout > 0 # passing timeout 0 to blpop causes it to block - _key, current_token = @redis.blpop(available_key, timeout || 0) + _key, current_token = @redis.blpop(available_key, timeout: (timeout || 0)) else current_token = @redis.lpop(available_key) end From d2d3d825bba798947a02bb8e5ebf77336a3606e8 Mon Sep 17 00:00:00 2001 From: brianswko Date: Wed, 12 Nov 2025 12:34:05 -0800 Subject: [PATCH 3/4] Handle redis.exists deprecation --- lib/redis/semaphore.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/redis/semaphore.rb b/lib/redis/semaphore.rb index 23b808a..5be3765 100644 --- a/lib/redis/semaphore.rb +++ b/lib/redis/semaphore.rb @@ -114,7 +114,7 @@ def signal(token = 1) end def exists? - @redis.exists(exists_key) + @redis.exists?(exists_key) end def all_tokens From 9fbb5d5aee9460a95a2455e9eaf1dcae5ffcf89d Mon Sep 17 00:00:00 2001 From: brianswko Date: Wed, 12 Nov 2025 12:36:43 -0800 Subject: [PATCH 4/4] Bump to 0.3.2 --- CHANGELOG.md | 5 +++++ redis-semaphore.gemspec | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8906f93..a45ee67 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ Changelog --------- +### 0.3.2 November 12, 2025 +- Fix deprecated `redis.exists` to use `redis.exists?` +- Fix deprecated calling commands on `Redis` inside `Redis #multi`. +- Fix deprecated positional timeout on `redis.blpop` + ### 0.3.1 April 17, 2016 - Fix `sem.lock(0)` bug (thanks eugenk!). 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'