[rpcrt4] Properly created named pipes

Robert Shearman rob at codeweavers.com
Tue Jan 17 03:40:40 CST 2006

Thomas Weidenmueller wrote:

>Created the named pipes with the FILE_FLAG_OVERLAPPED flag, otherwise
>the call to ConnectNamedPipe() will block the server thread if no
>connection can be established, which causes the rpc server to dead-lock
>during startup.

Hi Thomas,

I have a patch that converts rpcrt4 over to using overlapped I/O, but I 
didn't submit it because the performance on Wine is horrible. When using 
overlapped I/O we have to perform several more server calls than when 
using non-overlapped I/O. Also, I think that this patch is incorrect 
because if you want to make the pipe overlapped then you have to fix up 
all of the ReadFile calls to take an OVERLAPPED structure.

I'll shortly be starting a rewrite of part of the RPC server so that we 
can support more transports and I'll bear this bug in mind when I do it 
and I'll try to fix it. The solution I come to will probably involve a 
worker thread doing the ConnectNamedPipe.

Rob Shearman

More information about the wine-devel mailing list