Ensure crr->feature is an fstring
This commit is contained in:
parent
b28f344312
commit
ef9301a6b7
Notes:
git
2025-06-12 20:14:08 +00:00
4
ractor.c
4
ractor.c
@ -2339,8 +2339,8 @@ rb_ractor_require(VALUE feature)
|
||||
VALUE crr_obj = TypedData_Make_Struct(0, struct cross_ractor_require, &cross_ractor_require_data_type, crr);
|
||||
FL_SET_RAW(crr_obj, RUBY_FL_SHAREABLE);
|
||||
|
||||
// TODO: make feature shareable
|
||||
crr->feature = feature;
|
||||
// Convert feature to proper file path and make it shareable as fstring
|
||||
crr->feature = rb_fstring(FilePathValue(feature));
|
||||
crr->port = ractor_port_new(GET_RACTOR());
|
||||
crr->result = Qundef;
|
||||
crr->exception = Qundef;
|
||||
|
@ -118,6 +118,21 @@ class TestRactor < Test::Unit::TestCase
|
||||
RUBY
|
||||
end
|
||||
|
||||
def test_require_non_string
|
||||
assert_ractor(<<~'RUBY')
|
||||
require "tempfile"
|
||||
require "pathname"
|
||||
f = Tempfile.new(["file_to_require_from_ractor", ".rb"])
|
||||
f.write("puts 'success'")
|
||||
f.flush
|
||||
result = Ractor.new(f.path) do |path|
|
||||
require Pathname.new(path)
|
||||
"success"
|
||||
end.value
|
||||
assert_equal "success", result
|
||||
RUBY
|
||||
end
|
||||
|
||||
def assert_make_shareable(obj)
|
||||
refute Ractor.shareable?(obj), "object was already shareable"
|
||||
Ractor.make_shareable(obj)
|
||||
|
Loading…
x
Reference in New Issue
Block a user