@@ -6,22 +6,20 @@ module Concurrent
6
6
7
7
describe ThreadLocalVar do
8
8
9
- subject { ThreadLocalVar . new }
10
-
11
9
context '#initialize' do
12
10
13
11
it 'can set an initial value' do
14
- v = ThreadLocalVar . new ( 14 )
12
+ v = described_class . new ( 14 )
15
13
expect ( v . value ) . to eq 14
16
14
end
17
15
18
16
it 'sets nil as a default initial value' do
19
- v = ThreadLocalVar . new
17
+ v = described_class . new
20
18
expect ( v . value ) . to be_nil
21
19
end
22
20
23
21
it 'sets the same initial value for all threads' do
24
- v = ThreadLocalVar . new ( 14 )
22
+ v = described_class . new ( 14 )
25
23
t1 = Thread . new { v . value }
26
24
t2 = Thread . new { v . value }
27
25
expect ( t1 . value ) . to eq 14
@@ -30,51 +28,47 @@ module Concurrent
30
28
31
29
if Concurrent . on_jruby?
32
30
it 'extends JavaThreadLocalVar' do
33
- expect ( subject . class . ancestors ) . to include ( Concurrent ::JavaThreadLocalVar )
31
+ expect ( described_class . ancestors ) . to include ( Concurrent ::JavaThreadLocalVar )
34
32
end
35
33
else
36
34
it 'extends RubyThreadLocalVar' do
37
- expect ( subject . class . ancestors ) . to include ( Concurrent ::RubyThreadLocalVar )
35
+ expect ( described_class . ancestors ) . to include ( Concurrent ::RubyThreadLocalVar )
38
36
end
39
37
end
40
38
end
41
39
42
40
context '#value' do
41
+ let ( :v ) { described_class . new ( 14 ) }
43
42
44
43
it 'returns the current value' do
45
- v = ThreadLocalVar . new ( 14 )
46
44
expect ( v . value ) . to eq 14
47
45
end
48
46
49
47
it 'returns the value after modification' do
50
- v = ThreadLocalVar . new ( 14 )
51
48
v . value = 2
52
49
expect ( v . value ) . to eq 2
53
50
end
54
51
end
55
52
56
53
context '#value=' do
54
+ let ( :v ) { described_class . new ( 14 ) }
57
55
58
56
it 'sets a new value' do
59
- v = ThreadLocalVar . new ( 14 )
60
57
v . value = 2
61
58
expect ( v . value ) . to eq 2
62
59
end
63
60
64
61
it 'returns the new value' do
65
- v = ThreadLocalVar . new ( 14 )
66
62
expect ( v . value = 2 ) . to eq 2
67
63
end
68
64
69
65
it 'does not modify the initial value for other threads' do
70
- v = ThreadLocalVar . new ( 14 )
71
66
v . value = 2
72
67
t = Thread . new { v . value }
73
68
expect ( t . value ) . to eq 14
74
69
end
75
70
76
71
it 'does not modify the value for other threads' do
77
- v = ThreadLocalVar . new ( 14 )
78
72
v . value = 2
79
73
80
74
b1 = CountDownLatch . new ( 2 )
0 commit comments