diff options
author | Satoshi Moris Tagomori <tagomoris@gmail.com> | 2021-08-24 21:00:00 +0900 |
---|---|---|
committer | Koichi Sasada <ko1@atdot.net> | 2021-10-27 16:13:43 +0900 |
commit | 489e5e3a8293553578757664b338009667a8f204 (patch) | |
tree | 654d7edc51487e792dd62e28f823b7da5be4dc17 | |
parent | 9541b3b7c07eeca437857bb5430dbc68d3c04858 (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.rb | 2 | ||||
-rw-r--r-- | vm_insnhelper.c | 2 |
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 */ |