summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Capriotti <p.capriotti@gmail.com>2012-06-15 17:12:24 +0100
committerPaolo Capriotti <p.capriotti@gmail.com>2012-06-19 14:36:08 +0100
commit5490e71be49131108d849ffe02867acf189a9e19 (patch)
treeb42783cda76476f2fbbd193e5dbed59014dedc09
parentee44e19f20395596fc34f2bce5763fb16032dbd4 (diff)
downloadhaskell-5490e71be49131108d849ffe02867acf189a9e19.tar.gz
Add getGCStatsEnabled function.
-rw-r--r--includes/rts/storage/GC.h1
-rw-r--r--rts/Linker.c1
-rw-r--r--rts/Stats.c5
3 files changed, 7 insertions, 0 deletions
diff --git a/includes/rts/storage/GC.h b/includes/rts/storage/GC.h
index ab3af17b1e..5de8b2be4a 100644
--- a/includes/rts/storage/GC.h
+++ b/includes/rts/storage/GC.h
@@ -202,6 +202,7 @@ typedef struct _GCStats {
StgDouble wall_seconds;
} GCStats;
void getGCStats (GCStats *s);
+rtsBool getGCStatsEnabled (void);
// These don't change over execution, so do them elsewhere
// StgDouble init_cpu_seconds;
diff --git a/rts/Linker.c b/rts/Linker.c
index 7d10300f9c..703bc5fa07 100644
--- a/rts/Linker.c
+++ b/rts/Linker.c
@@ -1072,6 +1072,7 @@ typedef struct _RtsSymbolVal {
SymI_HasProto(getOrSetSystemEventThreadEventManagerStore) \
SymI_HasProto(getOrSetSystemEventThreadIOManagerThreadStore) \
SymI_HasProto(getGCStats) \
+ SymI_HasProto(getGCStatsEnabled) \
SymI_HasProto(genSymZh) \
SymI_HasProto(genericRaise) \
SymI_HasProto(getProgArgv) \
diff --git a/rts/Stats.c b/rts/Stats.c
index 5605810ba2..b12cb769f7 100644
--- a/rts/Stats.c
+++ b/rts/Stats.c
@@ -922,6 +922,11 @@ extern HsInt64 getAllocations( void )
/* EZY: I'm not convinced I got all the casting right. */
+extern rtsBool getGCStatsEnabled( void )
+{
+ return RtsFlags.GcFlags.giveStats != NO_GC_STATS;
+}
+
extern void getGCStats( GCStats *s )
{
nat total_collections = 0;