diff options
Diffstat (limited to 'rts/sm/Scav.c')
-rw-r--r-- | rts/sm/Scav.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/rts/sm/Scav.c b/rts/sm/Scav.c index b7bd7f384b..0eb4b11d89 100644 --- a/rts/sm/Scav.c +++ b/rts/sm/Scav.c @@ -1378,6 +1378,9 @@ scavenge_large (step_workspace *ws) recordMutableGen_GC((StgClosure *)p, ws->step->gen); } } + + // stats + gct->scanned += closure_sizeW((StgClosure*)p); } } @@ -1428,12 +1431,14 @@ loop: continue; } ws = &gct->steps[s]; - + if (ws->todo_bd != NULL) { - ws->todo_bd->free = ws->todo_free; + bd = ws->todo_bd; + gct->copied += ws->todo_free - bd->free; + bd->free = ws->todo_free; } - + // If we have a todo block and no scan block, start // scanning the todo block. if (ws->scan_bd == NULL && ws->todo_bd != NULL) |