Speeding up wineserver synchronization objects with shared memory

Michael McCormack mccormac at aals27.alcatel.com.au
Sun Feb 25 20:19:33 CST 2001

Two things:

1. How about expiring client's unix file descriptors by having
wineserver writing a single non-zero byte[*] to the server-communication
socket when another client modifies the fd? The code to validate fds before
use could then be reduced from a server call to a single nonwaiting poll 
on NtCurrentTeb()->reply_fd.

2. How about using pipes to implement critical sections? InitCriticalSection
would create a pipe and write one byte, EnterCritical section would do a
poll on the pipe, followed by a read of one byte, and leave critical section
would write one byte back to the pipe.

[*] wineserver would write a zero byte when it wished to restart a client
after a server call, and the client would need to check this.



mailto:Michael.McCormack at alcatel.com.au  phone: (+82 11 430 0425)

More information about the wine-devel mailing list