[PATCH v7 06/11] server: Defer clearing events until async is completed in send_socket handler.
Zebediah Figura
zfigura at codeweavers.com
Tue Mar 22 11:41:28 CDT 2022
On 3/19/22 17:28, Jinoh Kang wrote:> +static void
send_socket_completion_callback( void *private )
> +{
> + struct send_req *send_req = private;
> + struct iosb *iosb = send_req->iosb;
> + struct sock *sock = send_req->sock;
> +
> + if (iosb->status != STATUS_SUCCESS)
> + {
> + /* send() calls only clear and reselect events if unsuccessful. */
> + sock->pending_events &= ~AFD_POLL_WRITE;
> + sock->reported_events &= ~AFD_POLL_WRITE;
> + }
> +
> + sock_reselect( sock );
> +
I'd move this inside the prior if block. The point of reselecting here
is that our events just changed, and that might trigger us to need
reselect for POLLOUT.
> + release_object( iosb );
> + release_object( sock );
> + free( send_req );
> +}
> +
More information about the wine-devel
mailing list