Jinoh Kang (@iamahuman) commented about dlls/windows.media.speech/recognizer.c:
return ref;
}
+static HRESULT session_join_worker_thread( ISpeechContinuousRecognitionSession *iface ) +{
- struct session *impl = impl_from_ISpeechContinuousRecognitionSession(iface);
- EnterCriticalSection(&impl->cs);
- if (impl->worker_thread)
- {
if (WaitForSingleObject(impl->worker_thread, 1000))
```suggestion:-0+0 if (WaitForSingleObject(impl->worker_thread, INFINITE)) ```
`session_join_worker_thread` is called by `session_Release`. If the worker thread is still running by the time `session_join_worker_thread` returns, `session_Release` will free memory still referenced by the worker thread.