[PATCH 1/2] server: Only remove non-listening fd from poll

Zebediah Figura (she/her) zfigura at codeweavers.com
Fri Jul 2 14:33:09 CDT 2021


On 7/2/21 1:06 PM, David Koolhoven wrote:
> This makes sure we poll listening non-connection
> file descriptors even if the event is POLLERR or POLLHUP.
> 
> Signed-off-by: David Koolhoven <david at koolhoven-home.net>
> ---
>   server/sock.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/server/sock.c b/server/sock.c
> index befa9117c13..ce2f390ec05 100644
> --- a/server/sock.c
> +++ b/server/sock.c
> @@ -1024,7 +1024,7 @@ static void sock_poll_event( struct fd *fd, int event )
>           fprintf(stderr, "socket %p select event: %x\n", sock, event);
>   
>       /* we may change event later, remove from loop here */
> -    if (event & (POLLERR|POLLHUP)) set_fd_events( sock->fd, -1 );
> +    if (event & (POLLERR|POLLHUP) && sock->state != SOCK_LISTENING) set_fd_events( sock->fd, -1 );
>   
>       switch (sock->state)
>       {
> 

This doesn't look right. Why do we need to do this?



More information about the wine-devel mailing list