[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.