X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FRtsStartup.c;h=deb38e05d5ae373c5a041445001d798046bfe308;hb=1ee08bbe86b03ba74a9be309a84602b34e41cbb4;hp=5bb980674dd35acd5b26fd7b90a81e220284a2db;hpb=d526504719676871376324858fe2073aa2011424;p=ghc-hetmet.git diff --git a/rts/RtsStartup.c b/rts/RtsStartup.c index 5bb9806..deb38e0 100644 --- a/rts/RtsStartup.c +++ b/rts/RtsStartup.c @@ -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();