/* start timing the shutdown */
stat_startExit();
+#if defined(RTS_USER_SIGNALS)
+ freeSignalHandlers();
+#endif
+
#if defined(THREADED_RTS)
ioManagerDie();
#endif
// 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();