Skip to content

Commit

Permalink
Declare as Ractor-safe
Browse files Browse the repository at this point in the history
  • Loading branch information
nobu committed Mar 5, 2021
1 parent 88db082 commit ba338b4
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 0 deletions.
4 changes: 4 additions & 0 deletions ext/io/wait/wait.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down
22 changes: 22 additions & 0 deletions test/io/wait/test_ractor.rb
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit ba338b4

Please sign in to comment.