1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

Ractor.select requires an argument or yield_value

This commit is contained in:
Marc-Andre Lafortune 2020-12-05 00:04:48 -05:00 committed by Marc-André Lafortune
parent c2fa024e02
commit 53ce71b5af
Notes: git 2020-12-07 16:21:38 +09:00
2 changed files with 11 additions and 0 deletions

View file

@ -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

View file

@ -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;