diff options
| author | John Hawthorn <john@hawthorn.email> | 2025-10-09 18:23:46 -0700 |
|---|---|---|
| committer | John Hawthorn <john@hawthorn.email> | 2025-10-10 10:18:00 -0700 |
| commit | 17a5a5e2ef2b6253a68174a846972187dde6d547 (patch) | |
| tree | 03a2af2e37b0c8ee4245942c7c967f996f9c34b5 | |
| parent | f8c90e45163ce65d20a37789a020b436624c450b (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.c | 2 |
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 |
