2
0

Replace ThreadingHelper wait loop with functional CyclicBarrier (#36508)

This commit is contained in:
Ben Sheldon [he/him]
2025-10-20 03:10:43 -07:00
committed by GitHub
parent 82483ed8b0
commit 843c43c97a

View File

@@ -1,17 +1,18 @@
# frozen_string_literal: true
require 'concurrent/atomic/cyclic_barrier'
module ThreadingHelpers
def multi_threaded_execution(thread_count)
wait_for_start = true
barrier = Concurrent::CyclicBarrier.new(thread_count)
threads = Array.new(thread_count) do
Thread.new do
true while wait_for_start
barrier.wait
yield
end
end
wait_for_start = false
threads.each(&:join)
end
end