[ruby/io-wait] Declare as Ractor-safe
Fixes https://bugs.ruby-lang.org/issues/17659 https://github.com/ruby/io-wait/commit/ba338b4764
This commit is contained in:
parent
ea81fff564
commit
f6d5de8f33
Notes:
git
2021-03-07 09:54:58 +09:00
@ -273,6 +273,10 @@ io_wait(int argc, VALUE *argv, VALUE io)
|
||||
void
|
||||
Init_wait(void)
|
||||
{
|
||||
#ifdef HAVE_RB_EXT_RACTOR_SAFE
|
||||
RB_EXT_RACTOR_SAFE(true);
|
||||
#endif
|
||||
|
||||
rb_define_method(rb_cIO, "nread", io_nread, 0);
|
||||
rb_define_method(rb_cIO, "ready?", io_ready_p, 0);
|
||||
|
||||
|
22
test/io/wait/test_ractor.rb
Normal file
22
test/io/wait/test_ractor.rb
Normal file
@ -0,0 +1,22 @@
|
||||
# frozen_string_literal: true
|
||||
require 'test/unit'
|
||||
require 'rbconfig'
|
||||
require 'io/wait'
|
||||
|
||||
class TestIOWaitInRactor < Test::Unit::TestCase
|
||||
def setup
|
||||
omit unless defined? Ractor
|
||||
end
|
||||
|
||||
def test_ractor
|
||||
ext = "/io/wait.#{RbConfig::CONFIG['DLEXT']}"
|
||||
path = $".find {|path| path.end_with?(ext)}
|
||||
assert_in_out_err(%W[-r#{path}], <<-"end;", ["true"], [])
|
||||
$VERBOSE = nil
|
||||
r = Ractor.new do
|
||||
$stdout.equal?($stdout.wait_writable)
|
||||
end
|
||||
puts r.take
|
||||
end;
|
||||
end
|
||||
end
|
Loading…
x
Reference in New Issue
Block a user