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