projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add events to show when GC threads are idle/working
[ghc-hetmet.git]
/
rts
/
LdvProfile.c
diff --git
a/rts/LdvProfile.c
b/rts/LdvProfile.c
index
6a807cf
..
b5c0e63
100644
(file)
--- a/
rts/LdvProfile.c
+++ b/
rts/LdvProfile.c
@@
-9,10
+9,11
@@
#ifdef PROFILING
#ifdef PROFILING
+#include "PosixSource.h"
#include "Rts.h"
#include "Rts.h"
-#include "LdvProfile.h"
-#include "RtsFlags.h"
+
#include "Profiling.h"
#include "Profiling.h"
+#include "LdvProfile.h"
#include "Stats.h"
#include "RtsUtils.h"
#include "Schedule.h"
#include "Stats.h"
#include "RtsUtils.h"
#include "Schedule.h"
@@
-179,11
+180,6
@@
processHeapClosureForDead( StgClosure *c )
case RET_SMALL:
case RET_BIG:
// others
case RET_SMALL:
case RET_BIG:
// others
- case BLOCKED_FETCH:
- case FETCH_ME:
- case FETCH_ME_BQ:
- case RBH:
- case REMOTE_REF:
case INVALID_OBJECT:
default:
barf("Invalid object in processHeapClosureForDead(): %d", info->type);
case INVALID_OBJECT:
default:
barf("Invalid object in processHeapClosureForDead(): %d", info->type);
@@
-266,7
+262,9
@@
processChainForDead( bdescr *bd )
{
// Any object still in the chain is dead!
while (bd != NULL) {
{
// Any object still in the chain is dead!
while (bd != NULL) {
- processHeapClosureForDead((StgClosure *)bd->start);
+ if (!(bd->flags & BF_PINNED)) {
+ processHeapClosureForDead((StgClosure *)bd->start);
+ }
bd = bd->link;
}
}
bd = bd->link;
}
}