summaryrefslogtreecommitdiff
path: root/rts/sm
diff options
context:
space:
mode:
authorSimon Marlow <marlowsd@gmail.com>2014-06-09 09:18:12 +0100
committerSimon Marlow <marlowsd@gmail.com>2015-04-07 09:57:49 +0100
commita7ab161602aa0b5833d22c66e64eebb1d9275235 (patch)
tree22db09216cbd2165359d8add08b5cf4cdbf5041f /rts/sm
parent72092904e0ac1725c05c0447e1efe7ab541faa95 (diff)
downloadhaskell-a7ab161602aa0b5833d22c66e64eebb1d9275235.tar.gz
Replace hooks by callbacks in RtsConfig (#8785)
Summary: Hooks rely on static linking semantics, and are broken by -Bsymbolic which we need when using dynamic linking. Test Plan: Built it Reviewers: austin, hvr, tibbe Differential Revision: https://phabricator.haskell.org/D8
Diffstat (limited to 'rts/sm')
-rw-r--r--rts/sm/GC.c3
-rw-r--r--rts/sm/GCThread.h1
2 files changed, 4 insertions, 0 deletions
diff --git a/rts/sm/GC.c b/rts/sm/GC.c
index 9777f32a3b..52d7f98fa0 100644
--- a/rts/sm/GC.c
+++ b/rts/sm/GC.c
@@ -1091,6 +1091,9 @@ waitForGcThreads (Capability *cap USED_IF_THREADS)
nat i, j;
rtsBool retry = rtsTrue;
+ stat_startGCSync(gc_threads[cap->no]);
+
+
while(retry) {
for (i=0; i < n_threads; i++) {
if (i == me || gc_threads[i]->idle) continue;
diff --git a/rts/sm/GCThread.h b/rts/sm/GCThread.h
index 84ce3f0239..cbe4346afe 100644
--- a/rts/sm/GCThread.h
+++ b/rts/sm/GCThread.h
@@ -183,6 +183,7 @@ typedef struct gc_thread_ {
W_ scav_find_work;
Time gc_start_cpu; // process CPU time
+ Time gc_sync_start_elapsed; // start of GC sync
Time gc_start_elapsed; // process elapsed time
W_ gc_start_faults;