File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 2020
2121 # Unable to find a specific ticket but behavior change may be
2222 # related to this ML thread.
23- it "raises a ThreadError when used recursively" do
23+ it "raises a deadlock ThreadError when used recursively" do
2424 m = Mutex . new
2525 m . lock
2626 -> {
2727 m . lock
28- } . should raise_error ( ThreadError )
28+ } . should raise_error ( ThreadError , /deadlock/ )
29+ end
30+
31+ it "raises a deadlock ThreadError when multiple fibers from the same thread try to lock" do
32+ m = Mutex . new
33+
34+ m . lock
35+ f0 = Fiber . new do
36+ m . lock
37+ end
38+ -> { f0 . resume } . should raise_error ( ThreadError , /deadlock/ )
39+
40+ m . unlock
41+ f1 = Fiber . new do
42+ m . lock
43+ Fiber . yield
44+ end
45+ f2 = Fiber . new do
46+ m . lock
47+ end
48+ f1 . resume
49+ -> { f2 . resume } . should raise_error ( ThreadError , /deadlock/ )
2950 end
3051end
You can’t perform that action at this time.
0 commit comments