class ParallelTests::CLI

def execute_in_parallel(items, num_processes, options)

def execute_in_parallel(items, num_processes, options)
  Tempfile.open 'parallel_tests-lock' do |lock|
    ParallelTests.with_pid_file do
      simulate_output_for_ci options[:serialize_stdout] do
        Parallel.map(items, in_threads: num_processes) do |item|
          result = yield(item)
          reprint_output(result, lock.path) if options[:serialize_stdout]
          ParallelTests.stop_all_processes if options[:fail_fast] && result[:exit_status] != 0
          result
        end
      end
    end
  end
end