# File lib/rubygems/mirror/pool.rb, line 13 def run_til_done threads = Array.new(@size) do Thread.new { @queue.pop.call while true } end until @queue.empty? && @queue.num_waiting == @size threads.each { |t| t.join(0.1) } end threads.each { |t| t.kill } end