[project @ 2005-07-29 20:21:50 by sof]
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.
Showing with 30 additions and 5 deletions