summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Hawthorn <john@hawthorn.email>2025-10-09 18:23:46 -0700
committerJohn Hawthorn <john@hawthorn.email>2025-10-10 10:18:00 -0700
commit17a5a5e2ef2b6253a68174a846972187dde6d547 (patch)
tree03a2af2e37b0c8ee4245942c7c967f996f9c34b5
parentf8c90e45163ce65d20a37789a020b436624c450b (diff)
Take a full VM barrier in gc_rest
This isn't (yet?) safe to do because it concurrently modifies GC structures and dfree functions are not necessarily safe to do without stopping all Ractors. If it was safe to do this we should also do it for gc_enter_event_continue. I do think sweeping could be done concurrently with the mutator and in parallel, but that requires more work first.
-rw-r--r--gc/default/default.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/gc/default/default.c b/gc/default/default.c
index c23adae062..af386a9793 100644
--- a/gc/default/default.c
+++ b/gc/default/default.c
@@ -6633,8 +6633,6 @@ gc_enter(rb_objspace_t *objspace, enum gc_enter_event event, unsigned int *lock_
switch (event) {
case gc_enter_event_rest:
- if (!is_marking(objspace)) break;
- // fall through
case gc_enter_event_start:
case gc_enter_event_continue:
// stop other ractors