class Bundler::ParallelWorkers::Worker
def deq
def deq result = @response_queue.deq if WrappedException === result raise result.exception end result end
def enq(obj)
-
obj
(String
) -- mostly it is name of spec that should be downloaded
def enq(obj) @request_queue.enq obj end
def initialize(size, func)
-
func
(Proc
) -- job to run in inside the worker pool -
size
(Integer
) -- Size of pool
def initialize(size, func) @request_queue = Queue.new @response_queue = Queue.new prepare_workers size, func prepare_threads size end
def prepare_threads(size)
def prepare_threads(size) end
def stop
def stop stop_threads stop_workers end
def stop_threads
Stop the worker threads by sending a poison object down the request queue
def stop_threads @threads.each do @request_queue.enq POISON end @threads.each do |thread| thread.join end end
def stop_workers
def stop_workers end