mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
[strscan] Make strscan Ractor safe (#17)
* Make strscan Ractor safe * Add test-unit in the development dependencies https://github.com/ruby/strscan/commit/3c93c2bebe
This commit is contained in:
parent
cfa124ef05
commit
985f0af257
3 changed files with 33 additions and 0 deletions
|
@ -1571,6 +1571,10 @@ strscan_fixed_anchor_p(VALUE self)
|
||||||
void
|
void
|
||||||
Init_strscan(void)
|
Init_strscan(void)
|
||||||
{
|
{
|
||||||
|
#ifdef HAVE_RB_EXT_RACTOR_SAFE
|
||||||
|
rb_ext_ractor_safe(true);
|
||||||
|
#endif
|
||||||
|
|
||||||
#undef rb_intern
|
#undef rb_intern
|
||||||
ID id_scanerr = rb_intern("ScanError");
|
ID id_scanerr = rb_intern("ScanError");
|
||||||
VALUE tmp;
|
VALUE tmp;
|
||||||
|
|
|
@ -17,4 +17,5 @@ Gem::Specification.new do |s|
|
||||||
|
|
||||||
s.add_development_dependency "rake-compiler"
|
s.add_development_dependency "rake-compiler"
|
||||||
s.add_development_dependency "benchmark-driver"
|
s.add_development_dependency "benchmark-driver"
|
||||||
|
s.add_development_dependency "test-unit"
|
||||||
end
|
end
|
||||||
|
|
28
test/strscan/test_ractor.rb
Normal file
28
test/strscan/test_ractor.rb
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
require 'test/unit'
|
||||||
|
|
||||||
|
class TestStringScannerRactor < Test::Unit::TestCase
|
||||||
|
def setup
|
||||||
|
skip unless defined? Ractor
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_ractor
|
||||||
|
assert_in_out_err([], <<-"end;", ["stra", " ", "strb", " ", "strc"], [])
|
||||||
|
require "strscan"
|
||||||
|
$VERBOSE = nil
|
||||||
|
r = Ractor.new do
|
||||||
|
s = StringScanner.new("stra strb strc", true)
|
||||||
|
[
|
||||||
|
s.scan(/\\w+/),
|
||||||
|
s.scan(/\\s+/),
|
||||||
|
s.scan(/\\w+/),
|
||||||
|
s.scan(/\\s+/),
|
||||||
|
s.scan(/\\w+/),
|
||||||
|
s.scan(/\\w+/),
|
||||||
|
s.scan(/\\w+/)
|
||||||
|
]
|
||||||
|
end
|
||||||
|
puts r.take.compact
|
||||||
|
end;
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in a new issue