[project @ 2004-02-27 13:35:16 by simonmar]
authorsimonmar <unknown>
Fri, 27 Feb 2004 13:35:16 +0000 (13:35 +0000)
committersimonmar <unknown>
Fri, 27 Feb 2004 13:35:16 +0000 (13:35 +0000)
hs_exit(): call exitScheduler() *after* finalizeWeakPointersNow(),
because the latter needs to create/run threads.

ghc/rts/RtsStartup.c

index edbf88a..5255386 100644 (file)
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------------
- * $Id: RtsStartup.c,v 1.78 2003/09/26 12:12:35 panne Exp $
+ * $Id: RtsStartup.c,v 1.79 2004/02/27 13:35:16 simonmar Exp $
  *
  * (c) The GHC Team, 1998-2002
  *
@@ -324,14 +324,14 @@ hs_exit(void)
     /* start timing the shutdown */
     stat_startExit();
     
-    /* stop all running tasks */
-    exitScheduler();
-    
 #if !defined(GRAN)
     /* Finalize any remaining weak pointers */
     finalizeWeakPointersNow();
 #endif
     
+    /* stop all running tasks */
+    exitScheduler();
+    
 #if defined(GRAN)
     /* end_gr_simulation prints global stats if requested -- HWL */
     if (!RtsFlags.GranFlags.GranSimStats.Suppressed)