stack = [] 200.times do |y| stack.push(y) end runner = PooledRunner.new(Dummy, 4, [], true) while stack.size > 0 do runner.run() do |handler| puts stack.pop #puts "Handler #{handler.inspect} total threads: #{runner.num_tasks}" sleep ( i.to_f / 20 ) end end runner.wait_for_all runner.close_handlers