Commit 2efbfc25 authored by simonmar's avatar simonmar
Browse files

[project @ 2001-03-02 14:25:04 by simonmar]

A good bug: detectBlackHoles wasn't checking for ThreadRelocated,
which is why we sometimes get "no threads to run: infinite loop or
deadlock?" when we should get a NonTermination exception.

To be merged into the 4.08 branch.
parent ac76dbc4
/* ---------------------------------------------------------------------------
* $Id: Schedule.c,v 1.91 2001/02/12 13:14:13 simonmar Exp $
* $Id: Schedule.c,v 1.92 2001/03/02 14:25:04 simonmar Exp $
*
* (c) The GHC Team, 1998-2000
*
......@@ -2978,6 +2978,11 @@ detectBlackHoles( void )
for (t = all_threads; t != END_TSO_QUEUE; t = t->global_link) {
while (t->what_next == ThreadRelocated) {
t = t->link;
ASSERT(get_itbl(t)->type == TSO);
}
if (t->why_blocked != BlockedOnBlackHole) {
continue;
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment