server: Do not signal write bits if there are write asyncs alerted.
Asyncs which are alerted but not "waiting" may still fill the pipe, and we shouldn't signal AFD_POLL_WRITE in that case. Signed-off-by: Zebediah Figura <zfigura@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
c5541f8a08
commit
bff228c198
|
@ -1011,10 +1011,13 @@ static int sock_dispatch_asyncs( struct sock *sock, int event, int error )
|
|||
event &= ~(POLLIN | POLLPRI);
|
||||
}
|
||||
|
||||
if (event & POLLOUT && async_waiting( &sock->write_q ))
|
||||
if ((event & POLLOUT) && async_queued( &sock->write_q ))
|
||||
{
|
||||
if (debug_level) fprintf( stderr, "activating write queue for socket %p\n", sock );
|
||||
async_wake_up( &sock->write_q, STATUS_ALERTED );
|
||||
if (async_waiting( &sock->write_q ))
|
||||
{
|
||||
if (debug_level) fprintf( stderr, "activating write queue for socket %p\n", sock );
|
||||
async_wake_up( &sock->write_q, STATUS_ALERTED );
|
||||
}
|
||||
event &= ~POLLOUT;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue