зеркало из https://github.com/github/ruby.git
Родитель
2e6e2fd9da
Коммит
397a509b6d
|
@ -211,6 +211,17 @@ assert_equal '[:a, :b, :c, :d, :e, :f, :g]', %q{
|
||||||
Ractor.make_shareable(closure).call
|
Ractor.make_shareable(closure).call
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Now autoload in non-main Ractor is not supported
|
||||||
|
assert_equal 'ok', %q{
|
||||||
|
autoload :Foo, 'foo.rb'
|
||||||
|
r = Ractor.new do
|
||||||
|
p Foo
|
||||||
|
rescue Ractor::UnsafeError
|
||||||
|
:ok
|
||||||
|
end
|
||||||
|
r.take
|
||||||
|
}
|
||||||
|
|
||||||
###
|
###
|
||||||
###
|
###
|
||||||
# Ractor still has several memory corruption so skip huge number of tests
|
# Ractor still has several memory corruption so skip huge number of tests
|
||||||
|
|
|
@ -2553,6 +2553,10 @@ rb_autoload_load(VALUE mod, ID id)
|
||||||
src = rb_sourcefile();
|
src = rb_sourcefile();
|
||||||
if (src && loading && strcmp(src, loading) == 0) return Qfalse;
|
if (src && loading && strcmp(src, loading) == 0) return Qfalse;
|
||||||
|
|
||||||
|
if (UNLIKELY(!rb_ractor_main_p())) {
|
||||||
|
rb_raise(rb_eRactorUnsafeError, "require by autoload on non-main Ractor is not supported (%s)", rb_id2name(id));
|
||||||
|
}
|
||||||
|
|
||||||
if ((ce = rb_const_lookup(mod, id))) {
|
if ((ce = rb_const_lookup(mod, id))) {
|
||||||
flag = ce->flag & (CONST_DEPRECATED | CONST_VISIBILITY_MASK);
|
flag = ce->flag & (CONST_DEPRECATED | CONST_VISIBILITY_MASK);
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче