class ActiveSupport::Testing::Parallelization

def start

def start
  @pool = @queue_size.times.map do |worker|
    fork do
      DRb.stop_service
      begin
        after_fork(worker)
      rescue => setup_exception; end
      queue = DRbObject.new_with_uri(@url)
      while job = queue.pop
        klass    = job[0]
        method   = job[1]
        reporter = job[2]
        result = klass.with_info_handler reporter do
          Minitest.run_one_method(klass, method)
        end
        add_setup_exception(result, setup_exception) if setup_exception
        begin
          queue.record(reporter, result)
        rescue DRb::DRbConnError
          result.failures.each do |failure|
            failure.exception = DRb::DRbRemoteError.new(failure.exception)
          end
          queue.record(reporter, result)
        end
      end
    ensure
      run_cleanup(worker)
    end
  end
end