[project @ 2001-10-23 10:54:14 by simonmar]
[ghc-hetmet.git] / ghc / rts / Schedule.c
index 6411b10..7cad587 100644 (file)
@@ -1,5 +1,5 @@
 /* ---------------------------------------------------------------------------
- * $Id: Schedule.c,v 1.98 2001/07/24 06:31:36 ken Exp $
+ * $Id: Schedule.c,v 1.101 2001/10/23 10:54:14 simonmar Exp $
  *
  * (c) The GHC Team, 1998-2000
  *
@@ -74,6 +74,7 @@
 //@node Includes, Variables and Data structures, Main scheduling code, Main scheduling code
 //@subsection Includes
 
+#include "PosixSource.h"
 #include "Rts.h"
 #include "SchedAPI.h"
 #include "RtsUtils.h"
@@ -581,12 +582,14 @@ schedule( void )
                StgMainThread *m = main_threads;
 #ifdef SMP
                for (; m != NULL; m = m->link) {
+                   deleteThread(m->tso);
                    m->ret = NULL;
                    m->stat = Deadlock;
                    pthread_cond_broadcast(&m->wakeup);
                }
                main_threads = NULL;
 #else
+               deleteThread(m->tso);
                m->ret = NULL;
                m->stat = Deadlock;
                main_threads = m->link;
@@ -2092,7 +2095,8 @@ take_off_run_queue(StgTSO *tso) {
        KH @ 25/10/99
 */
 
-static void GetRoots(evac_fn evac)
+static void
+GetRoots(evac_fn evac)
 {
   StgMainThread *m;