X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2Fposix%2FSelect.c;fp=rts%2Fposix%2FSelect.c;h=bf4b7ae6157d7195f935bdf405ce872b652603a9;hb=b877faddc0cce7cceb470861a084784e0c1073b0;hp=ae9c717a9a88d32a5b7b5fd11c5c67d2f80a3a5c;hpb=9fa1c9f1f97d3f270fec864e272be18ef6a46a10;p=ghc-hetmet.git diff --git a/rts/posix/Select.c b/rts/posix/Select.c index ae9c717..bf4b7ae 100644 --- a/rts/posix/Select.c +++ b/rts/posix/Select.c @@ -244,6 +244,11 @@ awaitEvent(rtsBool wait) if (select_succeeded || unblock_all) { for(tso = blocked_queue_hd; tso != END_TSO_QUEUE; tso = next) { next = tso->_link; + + if (tso->what_next == ThreadRelocated) { + continue; + } + switch (tso->why_blocked) { case BlockedOnRead: ready = unblock_all || FD_ISSET(tso->block_info.fd, &rfd);