class Relaton::WorkersPool

Workers poll.

Public Class Methods

new(workers = 2) { |item| ... } click to toggle source
# File lib/relaton/workers_pool.rb, line 6
def initialize(workers = 2, &_block)
  num_workers = workers < 2 ? 2 : workers
  @queue = SizedQueue.new(num_workers * 2)
  @threads = Array.new num_workers do
    Thread.new do
      while item = @queue.pop; yield(item) end
    end
  end
end

Public Instance Methods

<<(item) click to toggle source
# File lib/relaton/workers_pool.rb, line 16
def <<(item)
  @queue << item
  self
end