Lightweight ticky-ticky profiling
[ghc-hetmet.git] / rts / RtsStartup.c
index 5bb9806..deb38e0 100644 (file)
@@ -378,6 +378,10 @@ hs_exit(void)
     /* start timing the shutdown */
     stat_startExit();
     
+#if defined(RTS_USER_SIGNALS)
+    freeSignalHandlers();
+#endif
+
 #if defined(THREADED_RTS)
     ioManagerDie();
 #endif
@@ -393,7 +397,7 @@ hs_exit(void)
     
     /* stop the ticker */
     stopTimer();
-    
+
     /* reset the standard file descriptors to blocking mode */
     resetNonBlockingFd(0);
     resetNonBlockingFd(1);
@@ -438,12 +442,24 @@ hs_exit(void)
     // also outputs the stats (+RTS -s) info.
     exitStorage();
     
+    /* free the tasks */
+    freeScheduler();
+
     /* free shared Typeable store */
     exitTypeableStore();
 
-    /* initialise the stable pointer table */
+    /* free the stable pointer table */
     exitStablePtrTable();
 
+#if defined(PROFILING) || defined(DEBUG)
+    freeProfiling1();
+#endif
+
+#if defined(DEBUG)
+    /* free the thread label table */
+    freeThreadLabelTable();
+#endif
+
     /* free hash table storage */
     exitHashTable();