R��mi Bernon (@rbernon) commented about dlls/windows.media.speech/recognizer.c:
static HRESULT WINAPI pause_callback( IInspectable *invoker ) { + struct session *impl = impl_from_ISpeechContinuousRecognitionSession((ISpeechContinuousRecognitionSession *)invoker); + + EnterCriticalSection(&impl->cs); + if (impl->session_thread && impl->session_running && !impl->session_paused) + { + impl->session_paused = TRUE; + LeaveCriticalSection(&impl->cs); + + WaitForSingleObject(impl->session_paused_event, INFINITE); + } + else LeaveCriticalSection(&impl->cs);
That would be instead: ```c++ EnterCriticalSection(&impl->cs); if (impl->session_running) impl->session_paused = TRUE; LeaveCriticalSection(&impl->cs); WakeConditionVariable(aimpl->cv); ``` -- https://gitlab.winehq.org/wine/wine/-/merge_requests/729#note_7750