Shachar Shemesh wrote:
From what I understood from him, this had a lot to do with the "epoll" change I investigated some time back. I'll let Mike say whether that is so.
There's a bug in the overlapped I/O code in file.c that means a normal file fd is added to the select() array and never removed, causing wineserver to go into a busy loop. I have a hack for it CrossOver, which I have submitted to wine-patches, which doesn't really fix the problem properly:
http://www.winehq.org/hypermail/wine-patches/2004/11/0300.html
The epoll patch fixs the problem, but not directly. The reason was that epoll refuses to add a normal file fd to the fd set, where as select was quite happy doing that.
I'm waiting on Eric Peouch's async I/O rewrite to go in and I'll retest and see if the above bug still exists.
Mike