summaryrefslogtreecommitdiff
path: root/rts/Threads.c
diff options
context:
space:
mode:
Diffstat (limited to 'rts/Threads.c')
-rw-r--r--rts/Threads.c5
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 {