No subject


Tue Mar 17 14:04:44 CDT 2009


dead-locked and why it should not. 

It is calling recv() on a socket that was previously:
1) set to blocking with a WS_ioctlsock() call with cmd WS_FIONBIO
2) AsyncSelect()'ed that should make the socket non-blocking.

The first call set the unix file descriptor to blocking:

   fcntl( fd, F_SETFL, 0 );

while the second does not touch the unix fd. This leaves the unix file
descriptor in the blocking state and the unix recvmsg() call will not
terminate.

I thought the unix file descriptor should always by non-blocking, but it
is a while since I was looking at socket code. Hopefully someone can
tell me if I am barking up the right tree.

Is what I think correct, and should the fcntl()'s simply go. Or should
AsyncSelect() set the unix fd to non blocking instead?

Rein. 



More information about the wine-devel mailing list