From: Piotr Caban <piotr(a)codeweavers.com> --- dlls/msvcrt/concurrency.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/dlls/msvcrt/concurrency.c b/dlls/msvcrt/concurrency.c index d7520ac308c..d524deb9e2c 100644 --- a/dlls/msvcrt/concurrency.c +++ b/dlls/msvcrt/concurrency.c @@ -915,7 +915,11 @@ unsigned int __thiscall ExternalContextBase_GetScheduleGroupId(const ExternalCon 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); } DEFINE_THISCALL_WRAPPER(ExternalContextBase_IsSynchronouslyBlocked, 4) -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/1979