Nikolay Sivov (@nsivov) commented about dlls/evr/presenter.c:
PostThreadMessageW(presenter->thread.tid, EVRM_STOP, 0, 0);
- /* Make sure streaming thread is not blocked by critical section before waiting for it. */
- LeaveCriticalSection(&presenter->cs); WaitForSingleObject(presenter->thread.hthread, INFINITE); CloseHandle(presenter->thread.hthread);
- EnterCriticalSection(&presenter->cs);
This should be arranged differently, you can't generally assume that you've entered this lock when calling the helper.