summaryrefslogtreecommitdiff
path: root/spec/ruby/library/conditionvariable
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/library/conditionvariable')
-rw-r--r--spec/ruby/library/conditionvariable/wait_spec.rb26
1 files changed, 8 insertions, 18 deletions
diff --git a/spec/ruby/library/conditionvariable/wait_spec.rb b/spec/ruby/library/conditionvariable/wait_spec.rb
index d4950a7b27..99e14efe35 100644
--- a/spec/ruby/library/conditionvariable/wait_spec.rb
+++ b/spec/ruby/library/conditionvariable/wait_spec.rb
@@ -23,21 +23,15 @@ describe "ConditionVariable#wait" do
th.join
end
- it "reacquires the lock even if the thread is killed" do
+ it "the lock remains usable even if the thread is killed" 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
+ cv.wait(m)
end
end
@@ -49,24 +43,19 @@ describe "ConditionVariable#wait" do
th.kill
th.join
- owned.should == true
+ m.try_lock.should == true
+ m.unlock
end
- it "reacquires the lock even if the thread is killed after being signaled" do
+ it "lock remains usable 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
+ cv.wait(m)
end
end
@@ -84,7 +73,8 @@ describe "ConditionVariable#wait" do
}
th.join
- owned.should == true
+ m.try_lock.should == true
+ m.unlock
end
it "supports multiple Threads waiting on the same ConditionVariable and Mutex" do