projects
/
ghc-hetmet.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
1cccf54
)
small changes to fix retainer profiling on HEAD
author
Simon Marlow
<simonmar@microsoft.com>
Tue, 21 Mar 2006 11:27:33 +0000
(11:27 +0000)
committer
Simon Marlow
<simonmar@microsoft.com>
Tue, 21 Mar 2006 11:27:33 +0000
(11:27 +0000)
ghc/rts/RetainerProfile.c
patch
|
blob
|
history
diff --git
a/ghc/rts/RetainerProfile.c
b/ghc/rts/RetainerProfile.c
index
80708fa
..
5208c59
100644
(file)
--- a/
ghc/rts/RetainerProfile.c
+++ b/
ghc/rts/RetainerProfile.c
@@
-1734,7
+1734,7
@@
retainRoot( StgClosure **tl )
ASSERT(isEmptyRetainerStack());
currentStackBoundary = stackTop;
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);
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++) {
// 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
// Traversing through mut_list is necessary
// because we can find MUT_VAR objects which have not been