The first few patches will introduce temporary leaks or cyclic refs, but that's because we'll handle them properly with the dispex CC, and the last patch should fix this. Other objects' traversal will follow in another MR.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3542
I'm not sure how could I test this behavior, right now the test I wrote works but there are times where it doesn't enter into the deadlock.
--
v7: evr: Remove process input handling from streaming thread.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3319
Needed by Underworld Island (Steam ID: 2150830) to skip videos properly.
--
v3: mfmediaengine: Implement media_engine_GetSeekable().
mfmediaengine/tests: Test IMFMediaEngine::GetSeekable().
https://gitlab.winehq.org/wine/wine/-/merge_requests/3536
This comes from behavioral study of Windows, which doesn't seem to check if the
lock is actually exclusively held, and just simply decrement the value stored
in the lock.
This fixes a dead lock which prevents WeCom from starting up.
--
v12: ntdll: An implementation of SRWLOCK that closer matches Windows'.
include: add atomic read/write of pointers
https://gitlab.winehq.org/wine/wine/-/merge_requests/3504