server: Do not signal read/write bits if there are read/write asyncs waiting.

This is validated by tests introduced in
59beffb46c etc. This commit alone doesn't fix said
tests, because:

* on this poll, we will alert the waiting async;

* when reselecting, we will still request POLLIN, because the AFD_POLL_READ
  request is still active,

* when POLLIN is subsequently signaled, we do not remove it in
  sock_dispatch_asyncs(), because we check async_waiting(), not async_queued().

Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Zebediah Figura 2022-05-05 00:43:25 -05:00 committed by Alexandre Julliard
parent 808d4a77f7
commit cafd260014
1 changed files with 1 additions and 2 deletions

View File

@ -1179,10 +1179,9 @@ static void sock_poll_event( struct fd *fd, int event )
break;
}
complete_async_polls( sock, event, error );
event = sock_dispatch_asyncs( sock, event, error );
sock_dispatch_events( sock, prevstate, event, error );
complete_async_polls( sock, event, error );
sock_reselect( sock );
}