File tree Expand file tree Collapse file tree 1 file changed +11
-30
lines changed
spec/ruby/library/monitor Expand file tree Collapse file tree 1 file changed +11
-30
lines changed Original file line number Diff line number Diff line change 7
7
10 . times do
8
8
9
9
thread = Thread . new do
10
- begin
11
- val = monitor . try_enter
12
- ensure
13
- monitor . exit if val
14
- end
10
+ val = monitor . try_enter
11
+ monitor . exit if val
15
12
val
16
13
end
17
14
23
20
it "will not acquire a monitor already held by another thread" do
24
21
monitor = Monitor . new
25
22
10 . times do
26
- locked = false
27
-
28
- thread1 = Thread . new do
29
- begin
30
- monitor . enter
31
- locked = true
32
- sleep # wait for wakeup.
33
- ensure
34
- monitor . exit
35
- end
36
- end
37
-
38
- Thread . pass until locked
39
- monitor . mon_locked? . should == true
40
-
41
- thread2 = Thread . new do
42
- begin
23
+ monitor . enter
24
+ begin
25
+ thread = Thread . new do
43
26
val = monitor . try_enter
44
- ensure
45
27
monitor . exit if val
28
+ val
46
29
end
47
- val
48
- end
49
-
50
- thread2 . join
51
- thread2 . value . should == false
52
30
53
- thread1 . wakeup
54
- thread1 . join
31
+ thread . join
32
+ thread . value . should == false
33
+ ensure
34
+ monitor . exit
35
+ end
55
36
monitor . mon_locked? . should == false
56
37
end
57
38
end
You can’t perform that action at this time.
0 commit comments