From e8a78f0f56786df40eb1d6476822c78e549f0ab1 Mon Sep 17 00:00:00 2001 From: simonpj Date: Wed, 26 Oct 2005 14:53:30 +0000 Subject: [PATCH] [project @ 2005-10-26 14:53:30 by simonpj] awaitRequests: blocked_queue_tl was being set to NULL rather than END_TSO_QUEUE if the thread being removed was at the end of the queue. This bug has been in the code since 2003 - I have absolutely no idea why it hasn't manifested until today. --- ghc/rts/win32/AsyncIO.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ghc/rts/win32/AsyncIO.c b/ghc/rts/win32/AsyncIO.c index 6881275..b8cbf28 100644 --- a/ghc/rts/win32/AsyncIO.c +++ b/ghc/rts/win32/AsyncIO.c @@ -280,7 +280,7 @@ start: blocked_queue_hd = tso->link; } if (blocked_queue_tl == tso) { - blocked_queue_tl = prev; + blocked_queue_tl = prev ? prev : END_TSO_QUEUE; } /* Terminates the run queue + this inner for-loop. */ -- 1.7.10.4