incremental GC: fix accumulation of page-repair work
Too much work was being saved for the final step of a major GC.
This commit is contained in:
parent
e9c722cf22
commit
d306ecdf3a
|
@ -5408,6 +5408,8 @@ static void incremental_repair_pages(NewGC *gc, int fuel)
|
||||||
while (fuel && gc->inc_repair_next) {
|
while (fuel && gc->inc_repair_next) {
|
||||||
page = gc->inc_repair_next;
|
page = gc->inc_repair_next;
|
||||||
gc->inc_repair_next = page->inc_modified_next;
|
gc->inc_repair_next = page->inc_modified_next;
|
||||||
|
if (!gc->inc_repair_next)
|
||||||
|
gc->inc_repair_next = gc->inc_modified_next;
|
||||||
GC_ASSERT(page->generation >= AGE_GEN_1);
|
GC_ASSERT(page->generation >= AGE_GEN_1);
|
||||||
if (page->generation == AGE_VACATED) {
|
if (page->generation == AGE_VACATED) {
|
||||||
/* skip */
|
/* skip */
|
||||||
|
|
Loading…
Reference in New Issue
Block a user