summaryrefslogtreecommitdiff
path: root/gc.c
diff options
context:
space:
mode:
authorPeter Zhu <peter@peterzhu.ca>2023-08-16 08:55:01 -0400
committerPeter Zhu <peter@peterzhu.ca>2023-09-01 11:58:50 -0400
commitbead5396503175b6873d1b4e60bd8c8d2c82b772 (patch)
treeeba7320126b526cc729fa964e3a7d643900d4199 /gc.c
parent58e0a3699f3eadf5f34107f86ad2b654e4764730 (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.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gc.c b/gc.c
index 0d2a9a4daa..2863240aa6 100644
--- a/gc.c
+++ b/gc.c
@@ -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);
}