diff options
author | Peter Zhu <peter@peterzhu.ca> | 2023-08-16 08:55:01 -0400 |
---|---|---|
committer | Peter Zhu <peter@peterzhu.ca> | 2023-09-01 11:58:50 -0400 |
commit | bead5396503175b6873d1b4e60bd8c8d2c82b772 (patch) | |
tree | eba7320126b526cc729fa964e3a7d643900d4199 /gc.c | |
parent | 58e0a3699f3eadf5f34107f86ad2b654e4764730 (diff) |
Incrementally mark even if we have free pages
We move all pooled pages to free pages at the start of incremental
marking, so we shouldn't run incremental marking only when we have run
out of free pages. This causes incremental marking to always complete
in a single step.
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/8230
Diffstat (limited to 'gc.c')
-rw-r--r-- | gc.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -2392,7 +2392,7 @@ gc_continue(rb_objspace_t *objspace, rb_size_pool_t *size_pool, rb_heap_t *heap) gc_enter(objspace, gc_enter_event_continue, &lock_lev); /* Continue marking if in incremental marking. */ - if (heap->free_pages == NULL && is_incremental_marking(objspace)) { + if (is_incremental_marking(objspace)) { if (gc_marks_continue(objspace, size_pool, heap)) { gc_sweep(objspace); } |