diff options
Diffstat (limited to 'rts/sm/GC.c')
| -rw-r--r-- | rts/sm/GC.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/rts/sm/GC.c b/rts/sm/GC.c index 8b92ca82cb..b9485f2c36 100644 --- a/rts/sm/GC.c +++ b/rts/sm/GC.c @@ -404,7 +404,7 @@ GarbageCollect (nat collect_gen, break; } - if (n_gc_threads != 1) { + if (!DEBUG_IS_ON && n_gc_threads != 1) { gct->allocated = clearNursery(cap); } @@ -638,7 +638,7 @@ GarbageCollect (nat collect_gen, } // Reset the nursery: make the blocks empty - if (n_gc_threads == 1) { + if (DEBUG_IS_ON || n_gc_threads == 1) { for (n = 0; n < n_capabilities; n++) { allocated += clearNursery(&capabilities[n]); } @@ -1074,7 +1074,9 @@ gcWorkerThread (Capability *cap) scavenge_until_all_done(); - gct->allocated = clearNursery(cap); + if (!DEBUG_IS_ON) { + gct->allocated = clearNursery(cap); + } #ifdef THREADED_RTS // Now that the whole heap is marked, we discard any sparks that |
