X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FThreads.c;h=f6b1bac1a78d55696154937ff59498f170c7f9bd;hb=3d290c13b56c9b30cf3ef66bd5744415f4dac086;hp=0dee734baa0edfc15903a437c5e191c266c33067;hpb=676b26bb57906b7fccf813771909ee19366e81e2;p=ghc-hetmet.git diff --git a/rts/Threads.c b/rts/Threads.c index 0dee734..f6b1bac 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 {