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
On 7/10/22 12:41, Jinoh Kang (@iamahuman) wrote:
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
I don't think that's worth blocking this patch for.