@@ -9,7 +9,7 @@ def setup
9
9
skip ( "Ractors are not supported on this Ruby version" ) unless defined? ( ::Ractor )
10
10
skip ( "Hiredis is not Ractor safe" ) if RedisClient . default_driver . name == "RedisClient::HiredisConnection"
11
11
begin
12
- Ractor . new { RedisClient . default_driver . name } . take
12
+ ractor_value ( Ractor . new { RedisClient . default_driver . name } )
13
13
rescue Ractor ::RemoteError
14
14
skip ( "Ractor implementation is too limited (MRI 3.0?)" )
15
15
end
@@ -25,7 +25,7 @@ def test_get_and_set_within_ractor
25
25
end
26
26
ractor . send ( ClientTestHelper . tcp_config . freeze )
27
27
28
- assert_equal ( "bar" , ractor . take )
28
+ assert_equal ( "bar" , ractor_value ( ractor ) )
29
29
end
30
30
31
31
def test_multiple_ractors
@@ -37,7 +37,7 @@ def test_multiple_ractors
37
37
end
38
38
ractor1 . send ( ClientTestHelper . tcp_config . freeze )
39
39
40
- ractor1 . take # We do this to ensure that the SET has been processed
40
+ ractor_value ( ractor1 ) # We do this to ensure that the SET has been processed
41
41
42
42
ractor2 = Ractor . new do
43
43
config = Ractor . receive
@@ -48,6 +48,16 @@ def test_multiple_ractors
48
48
ractor2 . send ( ClientTestHelper . tcp_config . freeze )
49
49
ractor2 . send ( "foo" )
50
50
51
- assert_equal ( "bar" , ractor2 . take )
51
+ assert_equal ( "bar" , ractor_value ( ractor2 ) )
52
+ end
53
+
54
+ if defined? ( Ractor ) && Ractor . method_defined? ( :value ) # Ruby 3.5+
55
+ def ractor_value ( ractor )
56
+ ractor . value
57
+ end
58
+ else
59
+ def ractor_value ( ractor )
60
+ ractor . take
61
+ end
52
62
end
53
63
end
0 commit comments