summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Marlow <simonmar@microsoft.com>2006-03-21 11:27:33 +0000
committerSimon Marlow <simonmar@microsoft.com>2006-03-21 11:27:33 +0000
commitd10027800c4f05beeeb2cd53fae06d7bc2e380fc (patch)
treeb4b3213c6c0d65279b03d42a94079ac9f38ba916
parent1cccf54bcd78f730bb1d4ec01b3562bcb88b5b6d (diff)
downloadhaskell-d10027800c4f05beeeb2cd53fae06d7bc2e380fc.tar.gz
small changes to fix retainer profiling on HEAD
-rw-r--r--ghc/rts/RetainerProfile.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/ghc/rts/RetainerProfile.c b/ghc/rts/RetainerProfile.c
index 80708fa002..5208c59bc0 100644
--- a/ghc/rts/RetainerProfile.c
+++ b/ghc/rts/RetainerProfile.c
@@ -1734,7 +1734,7 @@ retainRoot( StgClosure **tl )
ASSERT(isEmptyRetainerStack());
currentStackBoundary = stackTop;
- if (isRetainer(*tl)) {
+ if (*tl != &stg_END_TSO_QUEUE_closure && isRetainer(*tl)) {
retainClosure(*tl, *tl, getRetainerFrom(*tl));
} else {
retainClosure(*tl, *tl, CCS_SYSTEM);
@@ -1778,7 +1778,8 @@ computeRetainerSet( void )
// object (computing sumOfNewCostExtra and updating costArray[] when
// debugging retainer profiler).
for (g = 0; g < RtsFlags.GcFlags.generations; g++) {
- ASSERT(g != 0 || (generations[g].mut_list == NULL));
+ // NOT TRUE: even G0 has a block on its mutable list
+ // ASSERT(g != 0 || (generations[g].mut_list == NULL));
// Traversing through mut_list is necessary
// because we can find MUT_VAR objects which have not been