#include "Storage.h" /* initStorage, exitStorage */
#include "Schedule.h" /* initScheduler */
#include "Stats.h" /* initStats */
+#include "STM.h" /* initSTM */
#include "Signals.h"
#include "Timer.h" /* startTimer, stopTimer */
#include "Weak.h"
# include "LLC.h"
#endif
-#if defined(mingw32_TARGET_OS)
+#if defined(mingw32_HOST_OS)
#include "win32/AsyncIO.h"
#endif
initDefaultHandlers();
#endif
-#if defined(mingw32_TARGET_OS)
+#if defined(mingw32_HOST_OS)
startupAsyncIO();
#endif
+ initSTM();
+
#ifdef RTS_GTK_FRONTPANEL
if (RtsFlags.GcFlags.frontpanel) {
initFrontPanel();
/* start timing the shutdown */
stat_startExit();
-#if !defined(GRAN)
- /* Finalize any remaining weak pointers */
- finalizeWeakPointersNow();
-#endif
-
/* stop all running tasks */
exitScheduler();
if (RtsFlags.TickyFlags.showTickyStats) PrintTickyInfo();
#endif
-#if defined(mingw32_TARGET_OS)
+#if defined(mingw32_HOST_OS)
shutdownAsyncIO();
#endif
}