Haskell Program Coverage
[ghc-hetmet.git] / rts / RtsStartup.c
index 3fef259..67430dc 100644 (file)
@@ -28,6 +28,8 @@
 #include "ThreadLabels.h"
 #include "BlockAlloc.h"
 #include "Trace.h"
+#include "RtsTypeable.h"
+#include "Stable.h"
 
 #if defined(RTS_GTK_FRONTPANEL)
 #include "FrontPanel.h"
@@ -196,6 +198,9 @@ hs_init(int *argc, char **argv[])
     /* initialise the stable pointer table */
     initStablePtrTable();
 
+    /* initialise the shared Typeable store */
+    initTypeableStore();
+
 #if defined(DEBUG)
     /* initialise thread label table (tso->char*) */
     initThreadLabelTable();
@@ -206,7 +211,7 @@ hs_init(int *argc, char **argv[])
 #endif
 
     /* start the virtual timer 'subsystem'. */
-    startTimer(TICK_MILLISECS);
+    startTimer();
 
     /* Initialise the stats department */
     initStats();
@@ -306,6 +311,8 @@ hs_add_root(void (*init_root)(void))
 
     freeGroup_lock(bd);
 
+    startupHpc();
+
 #if defined(PROFILING) || defined(DEBUG)
     // This must be done after module initialisation.
     // ToDo: make this work in the presence of multiple hs_add_root()s.
@@ -386,10 +393,16 @@ hs_exit(void)
     /* stop timing the shutdown, we're about to print stats */
     stat_endExit();
     
+    /* shutdown the hpc support (if needed) */
+    exitHpc();
+
     // clean up things from the storage manager's point of view.
     // also outputs the stats (+RTS -s) info.
     exitStorage();
     
+    /* free shared Typeable store */
+    exitTypeableStore();
+
     /* initialise the stable pointer table */
     exitStablePtrTable();