From 5d9e59131312f83f925e2ce59865bcb537976422 Mon Sep 17 00:00:00 2001 From: thedarkone Date: Sun, 7 Feb 2016 19:02:37 +0100 Subject: Fix a nonsensical ShareLock test. --- activesupport/test/share_lock_test.rb | 43 +++++++++++++++++------------------ 1 file changed, 21 insertions(+), 22 deletions(-) (limited to 'activesupport') diff --git a/activesupport/test/share_lock_test.rb b/activesupport/test/share_lock_test.rb index 5fceebf023..143e65aa0c 100644 --- a/activesupport/test/share_lock_test.rb +++ b/activesupport/test/share_lock_test.rb @@ -341,38 +341,37 @@ class ShareLockTest < ActiveSupport::TestCase threads.each(&:kill) if threads end - def test_manual_recursive_yield + def test_manual_recursive_yield_cannot_expand_outer_compatible ready = Concurrent::CyclicBarrier.new(2) - done = Concurrent::CyclicBarrier.new(2) do_compatible_nesting = Concurrent::CountDownLatch.new + in_compatible_nesting = Concurrent::CountDownLatch.new - threads = [ - Thread.new do - @lock.sharing do - ready.wait - @lock.exclusive(purpose: :x) {} - done.wait - end - end, + incompatible_thread = Thread.new do + @lock.sharing do + ready.wait + @lock.exclusive(purpose: :x) {} + end + end - Thread.new do - @lock.sharing do - ready.wait - @lock.yield_shares(compatible: [:y]) do - do_compatible_nesting.wait - @lock.sharing do - @lock.yield_shares(compatible: [:x, :y]) do - done.wait - end + yield_shares_thread = Thread.new do + @lock.sharing do + ready.wait + @lock.yield_shares(compatible: [:y]) do + do_compatible_nesting.wait + @lock.sharing do + @lock.yield_shares(compatible: [:x, :y]) do + in_compatible_nesting.wait end end end end - ] + end - assert_threads_stuck threads + assert_threads_stuck incompatible_thread do_compatible_nesting.count_down - assert_threads_not_stuck threads + assert_threads_stuck incompatible_thread + in_compatible_nesting.count_down + assert_threads_not_stuck [yield_shares_thread, incompatible_thread] end def test_manual_recursive_yield_restores_previous_compatible -- cgit v1.2.3