diff options
author | Simon Marlow <marlowsd@gmail.com> | 2014-06-09 09:18:12 +0100 |
---|---|---|
committer | Simon Marlow <marlowsd@gmail.com> | 2015-04-07 09:57:49 +0100 |
commit | a7ab161602aa0b5833d22c66e64eebb1d9275235 (patch) | |
tree | 22db09216cbd2165359d8add08b5cf4cdbf5041f /rts/sm | |
parent | 72092904e0ac1725c05c0447e1efe7ab541faa95 (diff) | |
download | haskell-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.c | 3 | ||||
-rw-r--r-- | rts/sm/GCThread.h | 1 |
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; |