[PATCH v11 1/2] ntdll/socket: Implement exclusive flag for IOCTL_AFD_POLL.
Zebediah Figura
zfigura at codeweavers.com
Thu Sep 16 11:30:50 CDT 2021
On 9/16/21 10:35 AM, Guillaume Charifi wrote:
> @@ -788,7 +791,13 @@ static void free_poll_req( void *private )
> if (req->timeout) remove_timeout_user( req->timeout );
>
> for (i = 0; i < req->count; ++i)
> + {
> + if (req->sockets[i].sock->main_poll == req)
> + req->sockets[i].sock->main_poll = NULL;
> +
> release_object( req->sockets[i].sock );
> + }
> +
> release_object( req->async );
> release_object( req->iosb );
> list_remove( &req->entry );
This is too late, for the reasons mentioned earlier; it needs to be done
when the request is terminated, so in complete_async_polls(),
async_poll_timeout(), and poll_socket(). We shouldn't need to worry
about doing it in sock_close_handle(), since we can't queue any more
requests.
More information about the wine-devel
mailing list