# 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