diff options
Diffstat (limited to 'rts/Threads.c')
-rw-r--r-- | rts/Threads.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/rts/Threads.c b/rts/Threads.c index 0dee734baa..f6b1bac1a7 100644 --- a/rts/Threads.c +++ b/rts/Threads.c @@ -163,9 +163,11 @@ removeThreadFromQueue (Capability *cap, StgTSO **queue, StgTSO *tso) if (t == tso) { if (prev) { setTSOLink(cap,prev,t->_link); + t->_link = END_TSO_QUEUE; return rtsFalse; } else { *queue = t->_link; + t->_link = END_TSO_QUEUE; return rtsTrue; } } @@ -190,7 +192,8 @@ removeThreadFromDeQueue (Capability *cap, *head = t->_link; flag = rtsTrue; } - if (*tail == tso) { + t->_link = END_TSO_QUEUE; + if (*tail == tso) { if (prev) { *tail = prev; } else { |