diff options
author | Jean Boussier <[email protected]> | 2025-04-04 13:28:51 +0200 |
---|---|---|
committer | Jean Boussier <[email protected]> | 2025-04-04 16:26:29 +0200 |
commit | 085cc6e43473f2a3c81311a07c1fc8efa46c118b (patch) | |
tree | cbcbe1bcb361879562e8f1240d584de9dce908f3 /gc.c | |
parent | eb765913c108fa0e71ab7f9852457a914a7d98f0 (diff) |
Ractor: revert to moving object bytes, but size pool aware
Using `rb_obj_clone` introduce other problems, such as `initialize_*`
callbacks invocation in the context of the parent ractor.
So we can revert back to copy the content of the object slots,
but in a way that is aware of size pools.
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/13070
Diffstat (limited to 'gc.c')
-rw-r--r-- | gc.c | 8 |
1 files changed, 0 insertions, 8 deletions
@@ -2659,14 +2659,6 @@ rb_gc_mark_roots(void *objspace, const char **categoryp) #define TYPED_DATA_REFS_OFFSET_LIST(d) (size_t *)(uintptr_t)RTYPEDDATA(d)->type->function.dmark void -rb_gc_ractor_moved(VALUE dest, VALUE src) -{ - rb_gc_obj_free(rb_gc_get_objspace(), src); - MEMZERO((void *)src, char, rb_gc_obj_slot_size(src)); - RBASIC(src)->flags = T_OBJECT | FL_FREEZE; // Avoid mutations using bind_call, etc. -} - -void rb_gc_mark_children(void *objspace, VALUE obj) { if (FL_TEST(obj, FL_EXIVAR)) { |