# frozen_string_literal: true

module ThreadingHelpers
  def multi_threaded_execution(thread_count)
    wait_for_start = true

    threads = Array.new(thread_count) do
      Thread.new do
        true while wait_for_start
        yield
      end
    end

    wait_for_start = false
    threads.each(&:join)
  end
end