On Fri Aug 1 21:51:21 2025 +0000, Matteo Bruni wrote:
changed this line in [version 8 of the diff](/wine/wine/-/merge_requests/7797/diffs?diff_id=197357&start_sha=9c643a3b2da1d3f575007754788e0d0648f8f4db#9c0778468c57188f2b93d24b5fd88b2cfc900cd2_670_666)
Fair enough. I got rid of the async -> cancel grab, which works for `NtCancelIoFile` since allocating the handle implicitly grabs a reference to the cancel object. Which made me realize that I was never closing the returned handle, so I just added that to the next patch. Now the handle is closed after waiting, which releases the last reference to the cancel object and all is good (I think).
That also means that in the current version probably nothing makes sure to keep the cancel object alive until the cancelled asyncs complete processing in the process / thread termination cases. I have to think this through; for the time being, marking the MR as draft again.