summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSatoshi Moris Tagomori <tagomoris@gmail.com>2021-08-24 21:00:00 +0900
committerKoichi Sasada <ko1@atdot.net>2021-10-27 16:13:43 +0900
commit489e5e3a8293553578757664b338009667a8f204 (patch)
tree654d7edc51487e792dd62e28f823b7da5be4dc17
parent9541b3b7c07eeca437857bb5430dbc68d3c04858 (diff)
the core problem is the Proc is not shareable
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/4771
-rw-r--r--bootstraptest/test_ractor.rb2
-rw-r--r--vm_insnhelper.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/bootstraptest/test_ractor.rb b/bootstraptest/test_ractor.rb
index ee3f13cad9..bf80b94cc7 100644
--- a/bootstraptest/test_ractor.rb
+++ b/bootstraptest/test_ractor.rb
@@ -1130,7 +1130,7 @@ assert_equal 'can not set constants with non-shareable objects by non-main Racto
}
# define_method is not allowed
-assert_equal "defined in a different Ractor", %q{
+assert_equal "defined with an un-shareable Proc in a different Ractor", %q{
str = "foo"
define_method(:buggy){|i| str << "#{i}"}
begin
diff --git a/vm_insnhelper.c b/vm_insnhelper.c
index 5d83d3dfd5..048ed63aed 100644
--- a/vm_insnhelper.c
+++ b/vm_insnhelper.c
@@ -3082,7 +3082,7 @@ vm_call_bmethod_body(rb_execution_context_t *ec, struct rb_calling_info *calling
if (!RB_OBJ_SHAREABLE_P(procv) &&
cme->def->body.bmethod.defined_ractor != rb_ractor_self(rb_ec_ractor_ptr(ec))) {
- rb_raise(rb_eRuntimeError, "defined in a different Ractor");
+ rb_raise(rb_eRuntimeError, "defined with an un-shareable Proc in a different Ractor");
}
/* control block frame */