From 832d8c7397728d70d549d1f630ed50a9807cc313 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Thu, 4 Dec 2025 04:11:53 -0500 Subject: [PATCH] Use thread support helper in concurrent insert tag spec (#37112) --- spec/models/tag_spec.rb | 10 ++-------- spec/support/threading_helpers.rb | 4 ++-- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/spec/models/tag_spec.rb b/spec/models/tag_spec.rb index dd55f2bde4..79f8edf79a 100644 --- a/spec/models/tag_spec.rb +++ b/spec/models/tag_spec.rb @@ -287,16 +287,10 @@ RSpec.describe Tag do tag_name_upper = 'Rails' tag_name_lower = 'rails' - threads = [] - - 2.times do |i| - threads << Thread.new do - described_class.find_or_create_by_names(i.zero? ? tag_name_upper : tag_name_lower) - end + multi_threaded_execution(2) do |index| + described_class.find_or_create_by_names(index.zero? ? tag_name_upper : tag_name_lower) end - threads.each(&:join) - tags = described_class.where('lower(name) = ?', tag_name_lower.downcase) expect(tags.count).to eq(1) expect(tags.first.name.downcase).to eq(tag_name_lower.downcase) diff --git a/spec/support/threading_helpers.rb b/spec/support/threading_helpers.rb index 4ca8c9865a..cb2a70fb7a 100644 --- a/spec/support/threading_helpers.rb +++ b/spec/support/threading_helpers.rb @@ -6,10 +6,10 @@ module ThreadingHelpers def multi_threaded_execution(thread_count) barrier = Concurrent::CyclicBarrier.new(thread_count) - threads = Array.new(thread_count) do + threads = Array.new(thread_count) do |index| Thread.new do barrier.wait - yield + yield(index) end end