mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Refined "Drop support for ruby 2.4 from ruby/spec"
By using spec/mspec/tool/remove_old_guards.rb.
This commit is contained in:
parent
f49a24201c
commit
18f7d3c9a6
Notes:
git
2020-04-03 10:37:05 +09:00
9 changed files with 197 additions and 163 deletions
|
@ -106,41 +106,39 @@ describe "ConditionVariable#wait" do
|
|||
owned.should == true
|
||||
end
|
||||
|
||||
ruby_bug '#14999', ''...'2.5' do
|
||||
it "reacquires the lock even if the thread is killed after being signaled" do
|
||||
m = Mutex.new
|
||||
cv = ConditionVariable.new
|
||||
in_synchronize = false
|
||||
owned = nil
|
||||
it "reacquires the lock even if the thread is killed after being signaled" do
|
||||
m = Mutex.new
|
||||
cv = ConditionVariable.new
|
||||
in_synchronize = false
|
||||
owned = nil
|
||||
|
||||
th = Thread.new do
|
||||
m.synchronize do
|
||||
in_synchronize = true
|
||||
begin
|
||||
cv.wait(m)
|
||||
ensure
|
||||
owned = m.owned?
|
||||
$stderr.puts "\nThe Thread doesn't own the Mutex!" unless owned
|
||||
end
|
||||
th = Thread.new do
|
||||
m.synchronize do
|
||||
in_synchronize = true
|
||||
begin
|
||||
cv.wait(m)
|
||||
ensure
|
||||
owned = m.owned?
|
||||
$stderr.puts "\nThe Thread doesn't own the Mutex!" unless owned
|
||||
end
|
||||
end
|
||||
|
||||
# wait for m to acquire the mutex
|
||||
Thread.pass until in_synchronize
|
||||
# wait until th is sleeping (ie waiting)
|
||||
Thread.pass until th.stop?
|
||||
|
||||
m.synchronize {
|
||||
cv.signal
|
||||
# Wait that the thread is blocked on acquiring the Mutex
|
||||
sleep 0.001
|
||||
# Kill the thread, yet the thread should first acquire the Mutex before going on
|
||||
th.kill
|
||||
}
|
||||
|
||||
th.join
|
||||
owned.should == true
|
||||
end
|
||||
|
||||
# wait for m to acquire the mutex
|
||||
Thread.pass until in_synchronize
|
||||
# wait until th is sleeping (ie waiting)
|
||||
Thread.pass until th.stop?
|
||||
|
||||
m.synchronize {
|
||||
cv.signal
|
||||
# Wait that the thread is blocked on acquiring the Mutex
|
||||
sleep 0.001
|
||||
# Kill the thread, yet the thread should first acquire the Mutex before going on
|
||||
th.kill
|
||||
}
|
||||
|
||||
th.join
|
||||
owned.should == true
|
||||
end
|
||||
|
||||
it "supports multiple Threads waiting on the same ConditionVariable and Mutex" do
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue