summaryrefslogtreecommitdiff
path: root/vm.c
diff options
context:
space:
mode:
Diffstat (limited to 'vm.c')
-rw-r--r--vm.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/vm.c b/vm.c
index ad687d579a..73d6cd9d5d 100644
--- a/vm.c
+++ b/vm.c
@@ -1181,6 +1181,10 @@ rb_proc_ractor_make_shareable(VALUE self)
rb_proc_t *proc = (rb_proc_t *)RTYPEDDATA_DATA(self);
if (proc->block.type != block_type_iseq) rb_raise(rb_eRuntimeError, "not supported yet");
+ if (!rb_ractor_shareable_p(vm_block_self(&proc->block))) {
+ rb_raise(rb_eRactorIsolationError, "Proc's self is not shareable");
+ }
+
VALUE read_only_variables = Qfalse;
if (iseq->body->outer_variables) {