cvs commit: fptools/ghc/rts/win32 AsyncIO.c
Sigbjorn Finne
sof at haskell.org
Fri Jul 29 16:21:51 EDT 2005
sof 2005/07/29 13:21:51 PDT
Modified files:
ghc/rts/win32 AsyncIO.c
Log:
win32/AsyncIO.c:onIOComplete(), awaitRequests():
Avoid completion table overflow through the use of
a semaphore. Worker threads (the producers) wait for a free
event slot to appear, the RTS thread (consumer) signal slot
availability once the completion event has been de-queued and
processed.
This bug only manifests itself in 'massively concurrent' code
(>200 threads), where the threads simultaneously engage in IO
through the async IO layer. conc023 and conc036 in the regression
test suite are examples of such.
Merge to STABLE.
Revision Changes Path
1.12 +30 -5 fptools/ghc/rts/win32/AsyncIO.c
More information about the Cvs-ghc
mailing list