Jinoh Kang (@iamahuman) commented about server/thread.c:
release_object( apc ); }
+ if (!ctx_count && current->context && req->flags & SELECT_SUSPEND) + { + /* select is called from signal and thread context is required. */ + set_error( STATUS_MORE_PROCESSING_REQUIRED ); + reply->signaled = 1; + return; + } +
Can we move this to `check_wait()`, ideally just after `return STATUS_KERNEL_APC;`? This introduces a new "failure" mode of `select` request, which will cause the `server_select` loop to be interrupted in a way that I find hard to reason about. I don't see how the more-processing-required condition is fundamentally different from other signalling conditions that satisfies the wait either. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/4914#note_58850