From 1e2ed492e0feada0372ed6f510ac36ff42d241e4 Mon Sep 17 00:00:00 2001
From: simonm <unknown>
Date: Fri, 26 Feb 1999 12:32:51 +0000
Subject: [PATCH] [project @ 1999-02-26 12:32:51 by simonm] Fix run queue
 corruption bug.

---
 ghc/rts/Schedule.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/ghc/rts/Schedule.c b/ghc/rts/Schedule.c
index 0b273c403a21..0f5470659838 100644
--- a/ghc/rts/Schedule.c
+++ b/ghc/rts/Schedule.c
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------------
- * $Id: Schedule.c,v 1.9 1999/02/05 16:02:53 simonm Exp $
+ * $Id: Schedule.c,v 1.10 1999/02/26 12:32:51 simonm Exp $
  *
  * (c) The GHC Team, 1998-1999
  *
@@ -509,16 +509,17 @@ SchedulerStatus schedule(StgTSO *main, StgClosure **ret_val)
        * t->link is already set to END_TSO_QUEUE.
        */
       ASSERT(t->link == END_TSO_QUEUE);
-      if (run_queue_tl != END_TSO_QUEUE) {
+      if (run_queue_tl == END_TSO_QUEUE) {
+        run_queue_hd = run_queue_tl = t;
+      } else {
         ASSERT(get_itbl(run_queue_tl)->type == TSO);
 	if (run_queue_hd == run_queue_tl) {
 	  run_queue_hd->link = t;
 	  run_queue_tl = t;
 	} else {
 	  run_queue_tl->link = t;
+	  run_queue_tl = t;
 	}
-      } else {
-        run_queue_hd = run_queue_tl = t;
       }
       break;
 
-- 
GitLab