Skip to content

Commit ab153ac

Browse files
authored
fix: wait for threads to be exited on closing workers (#444)
1 parent f027c8b commit ab153ac

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

lib/redis_client/cluster/concurrent_worker/pooled.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,9 @@ def push(task)
3737

3838
def close
3939
@q.clear
40-
@workers.each { |t| t&.exit }
40+
workers = @workers.compact
41+
workers.each(&:exit)
42+
workers.each(&:join)
4143
@workers.clear
4244
@q.close
4345
@pid = nil

lib/redis_client/cluster/pub_sub.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,11 @@ def ensure_worker
2626
end
2727

2828
def close
29-
@worker.exit if @worker&.alive?
29+
if @worker&.alive?
30+
@worker.exit
31+
@worker.join
32+
end
33+
3034
@client.close
3135
rescue ::RedisClient::ConnectionError
3236
# ignore

0 commit comments

Comments
 (0)