Jinoh Kang (@iamahuman) commented about server/async.c:
> return woken;
> }
>
> +static int cancel_blocking( struct process *process, struct thread *thread, client_ptr_t iosb )
> +{
> + struct async *async;
> + int woken = 0;
> +
> +restart:
> + LIST_FOR_EACH_ENTRY( async, &process->asyncs, struct async, process_entry )
> + {
> + if (async->terminated || async->canceled) continue;
There is a pre-existing bug where cancellation requests are ignored for alerted asyncs (i.e. async instances that are not actually completed and can go back from the "terminated" state to the pending state). Perhaps it's worth addressing that bug first? https://www.winehq.org/pipermail/wine-devel/2022-March/210053.html
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/47#note_3836
On Thu Jul 14 06:48:37 2022 +0000, Daniel Lehman wrote:
> in the exchange, it sounded like you had or were working on a fix. were
> you asking me to fix it or wait for your fix?
Well, it was actually more of a question than a suggestion. I just wondered if it would be a good idea to get I/O cancellation right first, lest rolling in another cancellation function would result in some unknown regression due to falsely indicated success from that function.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/47#note_4299
"The King of Fighters '98 Ultimate Match Final Edition" depends on
this behavior. At least, the build I have is; it seems other builds
are not.
Signed-off-by: Giovanni Mascellani <gmascellani(a)codeweavers.com>
--
v5: xactengine3_7/tests: Test notifications when loading a wave bank.
https://gitlab.winehq.org/wine/wine/-/merge_requests/398