Hello,
there should be only one dispatcher thread per process that accepts control requests. For shared services it starts another service threads on demand and the amount of them is not limited with MAXIMUM_WAIT_OBJECTS.
Thanks.
Alexander Yaworsky wrote:
there should be only one dispatcher thread per process that accepts control requests. For shared services it starts another service threads on demand and the amount of them is not limited with MAXIMUM_WAIT_OBJECTS.
I'm aware that there should only be one thread, and should have put a comment in there about why I chose one service manager thread per service.
The reason is that there is current no way to wait on more than one pipe at a time in Wine, as overlapped I/O on pipes does not work correctly. Since I need to listen to many pipes, I need one thread per pipe so each thread can block in ReadFile for one pipe only.
That reminds me that now Eric Poeuch's overlapped I/O changes are in, I need to do some work on overlapped I/O for pipes and to make the wineserver behave better (ie. fix the iTunes problem properly).
Mike