Skip to content

Commit 594f8be

Browse files
authored
chore: add a guard closure to detect internal bugs earlier (#263)
1 parent 95e11bb commit 594f8be

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

lib/redis_client/cluster/concurrent_worker.rb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ class RedisClient
77
class Cluster
88
module ConcurrentWorker
99
MAX_WORKERS = Integer(ENV.fetch('REDIS_CLIENT_MAX_THREADS', 5))
10-
NotEnoughTasks = Class.new(::RedisClient::Error)
10+
InvalidNumberOfTasks = Class.new(::RedisClient::Error)
1111

1212
class Group
1313
Task = Struct.new(
@@ -33,14 +33,16 @@ def initialize(worker:, size:)
3333
end
3434

3535
def push(id, *args, **kwargs, &block)
36+
raise InvalidNumberOfTasks, "expected: #{@result_queue.max}, actual: #{@count + 1}" if @count + 1 > @result_queue.max
37+
3638
task = Task.new(id: id, queue: @result_queue, args: args, kwargs: kwargs, block: block)
3739
@worker.push(task)
3840
@count += 1
3941
nil
4042
end
4143

4244
def each
43-
raise NotEnoughTasks, "expected: #{@result_queue.max}, actual: #{@count}" if @count != @result_queue.max
45+
raise InvalidNumberOfTasks, "expected: #{@result_queue.max}, actual: #{@count}" if @count != @result_queue.max
4446

4547
@result_queue.max.times do
4648
task = @result_queue.pop

0 commit comments

Comments
 (0)