[PATCH 01/10] server: allow polling for no events in set_fd_events

Alexandre Julliard julliard at winehq.org
Thu Apr 8 14:29:28 CDT 2010


Mike Kaplinskiy <mike.kaplinskiy at gmail.com> writes:

> This won't work for implementing half-closed sockets. If we have only
> the read half is closed, we will get POLLIN/0 recv indefinitely if we
> keep polling (not POLLHUP). If we remove it from the loop, we have to
> keep polling (once in a while, i.e. when an enable_socket_event gets
> through) until we get a POLLHUP/POLLERR which signals the other half
> is closed. On some platforms this won't work, but they will jump to a
> full close automatically (i.e. POLLHUP right away). The problem now is
> that if we receive a shutdown, we will spam FD_CLOSE on every
> successful send.

I don't see why. If you don't get POLLHUP then you can keep polling,
just don't select for POLLIN once you have seen EOF. The problem with
POLLHUP/POLLERR is that they can't be masked, but POLLIN doesn't have
that issue.

-- 
Alexandre Julliard
julliard at winehq.org



More information about the wine-devel mailing list