X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2Fwin32%2FAsyncIO.c;fp=rts%2Fwin32%2FAsyncIO.c;h=6fb9a2b22d01383958db5806f5020dd5f1194b71;hb=052ad75a87e7f84d9dcf3115c3ec87bd119cc90d;hp=54fc5cb526c5ebe1d5e93a70caf101fee79319d5;hpb=392834a3ef2e08e253fa3f76302564d63dc48a1e;p=ghc-hetmet.git diff --git a/rts/win32/AsyncIO.c b/rts/win32/AsyncIO.c index 54fc5cb..6fb9a2b 100644 --- a/rts/win32/AsyncIO.c +++ b/rts/win32/AsyncIO.c @@ -275,7 +275,7 @@ start: unsigned int rID = completedTable[i].reqID; prev = NULL; - for(tso = blocked_queue_hd ; tso != END_TSO_QUEUE; prev = tso, tso = tso->link) { + for(tso = blocked_queue_hd ; tso != END_TSO_QUEUE; prev = tso, tso = tso->_link) { switch(tso->why_blocked) { case BlockedOnRead: @@ -290,16 +290,16 @@ start: /* Drop the matched TSO from blocked_queue */ if (prev) { - prev->link = tso->link; + setTSOLink(&MainCapability, prev, tso->_link); } else { - blocked_queue_hd = tso->link; + blocked_queue_hd = tso->_link; } if (blocked_queue_tl == tso) { blocked_queue_tl = prev ? prev : END_TSO_QUEUE; } /* Terminates the run queue + this inner for-loop. */ - tso->link = END_TSO_QUEUE; + tso->_link = END_TSO_QUEUE; tso->why_blocked = NotBlocked; pushOnRunQueue(&MainCapability, tso); break;