diff options
author | Marc-Andre Lafortune <[email protected]> | 2020-12-05 00:04:48 -0500 |
---|---|---|
committer | Marc-André Lafortune <[email protected]> | 2020-12-07 02:21:12 -0500 |
commit | 53ce71b5af09843e1f6dfac7d2f39fa4cf682b12 (patch) | |
tree | 17b4802b9fd14507f1221fc6ee37aa2df8bbdb5d | |
parent | c2fa024e0220aca6e2437e56df2abf1a2368cbdf (diff) |
Ractor.select requires an argument or yield_value
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/3848
-rw-r--r-- | bootstraptest/test_ractor.rb | 9 | ||||
-rw-r--r-- | ractor.rb | 2 |
2 files changed, 11 insertions, 0 deletions
diff --git a/bootstraptest/test_ractor.rb b/bootstraptest/test_ractor.rb index d3ff65ae21..d89bf108c1 100644 --- a/bootstraptest/test_ractor.rb +++ b/bootstraptest/test_ractor.rb @@ -163,6 +163,15 @@ assert_equal 30.times.map { 'ok' }.to_s, %q{ } } unless ENV['RUN_OPTS'] =~ /--jit-min-calls=5/ # This always fails with --jit-wait --jit-min-calls=5 +# Exception for empty select +assert_match /specify at least one ractor/, %q{ + begin + Ractor.select + rescue ArgumentError => e + e.message + end +} + # Outgoing port of a ractor will be closed when the Ractor is terminated. assert_equal 'ok', %q{ r = Ractor.new do @@ -71,6 +71,8 @@ class Ractor # # and r is :yield # def self.select(*ractors, yield_value: yield_unspecified = true, move: false) + raise ArgumentError, 'specify at least one ractor or `yield_value`' if yield_unspecified && ractors.empty? + __builtin_cstmt! %q{ const VALUE *rs = RARRAY_CONST_PTR_TRANSIENT(ractors); VALUE rv; |