14 Apr
2023
14 Apr
'23
5:26 p.m.
Piotr Caban (@piotr) commented about dlls/msvcrt/concurrency.c:
DEFINE_THISCALL_WRAPPER(ExternalContextBase_Unblock, 4) void __thiscall ExternalContextBase_Unblock(ExternalContextBase *this) { - FIXME("(%p)->() stub\n", this); + TRACE("(%p)->()\n", this); + + /* TODO: throw context_unblock_unbalanced if this->blocked goes below -1 */ + if (InterlockedDecrement(&this->blocked) < 1) + RtlWakeAddressSingle(&this->blocked); Is the if condition correct? It looks like it should be following:
if (!InterlockedDecrement(&this->blocked))
RtlWakeAddressSingle(&this->blocked);
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/1979#note_30103