summaryrefslogtreecommitdiff
path: root/ractor.c
diff options
context:
space:
mode:
authorLuke Gruber <[email protected]>2024-02-16 14:08:39 -0500
committerKoichi Sasada <[email protected]>2024-12-24 11:38:44 +0900
commit38af38edcbceb9d17aaf84420008fe839f77e42f (patch)
tree07899ad0a45f0e06a68d6e3f87472007183a3d8f /ractor.c
parent1eb5c03fda7e9616a1461f48f4bd8b8739de122d (diff)
Fix ractor move of unshareable frozen objects
These objects didn't retain their frozen status after the move Bug [#19408]
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/9996
Diffstat (limited to 'ractor.c')
-rw-r--r--ractor.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/ractor.c b/ractor.c
index 0240d1f216..2dfd56d068 100644
--- a/ractor.c
+++ b/ractor.c
@@ -3581,6 +3581,10 @@ move_leave(VALUE obj, struct obj_traverse_replace_data *data)
rb_replace_generic_ivar(v, obj);
}
+ if (OBJ_FROZEN(obj)) {
+ OBJ_FREEZE(v);
+ }
+
// TODO: generic_ivar
ractor_moved_bang(obj);