| 
							
							# 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
 |