lib/sneakers/workergroup.rb in sneakers-2.3.5 vs lib/sneakers/workergroup.rb in sneakers-2.4.0

- old
+ new

@@ -21,10 +21,16 @@ # Allocate single thread pool if share_threads is set. This improves load balancing # when used with many workers. pool = config[:share_threads] ? Thread.pool(config[:threads]) : nil - @workers = config[:worker_classes].map{|w| w.new(nil, pool) } + worker_classes = config[:worker_classes] + + if worker_classes.respond_to? :call + worker_classes = worker_classes.call + end + + @workers = worker_classes.map{|w| w.new(nil, pool) } # if more than one worker this should be per worker # accumulate clients and consumers as well @workers.each do |worker| worker.run end