Rémi Bernon (@rbernon) commented about server/async.c:
(!thread || async->thread == thread) && (!iosb || async->data.iosb == iosb)) {
cancel_async( process, async );
}cancel_async( cancel, async ); woken++; goto restart; }
- return woken;
- if (cancel->count) cancel->wait_handle = alloc_handle( process, cancel, SYNCHRONIZE, 0 );
- release_object( cancel );
- return woken ? cancel : NULL;
Doesn't look right to return an object after releasing the owned reference. Returning its wait_handle should be enough for the next commit.