[Bug 49094] "err:ntdll:RtlpWaitForCriticalSection" racy hang when starting/running StarCraft 2

WineHQ Bugzilla wine-bugs at winehq.org
Wed May 6 15:12:44 CDT 2020


https://bugs.winehq.org/show_bug.cgi?id=49094

Patrick Donnelly <bat.misc at batbytes.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
      Fixed by SHA1|                            |449ca2fbf9e44a40ff2cc6eedad
                   |                            |a8dd2f94c7adf
         Resolution|---                         |FIXED

--- Comment #1 from Patrick Donnelly <bat.misc at batbytes.com> ---
It appears this commit fixes the issue:

commit 449ca2fbf9e44a40ff2cc6eedada8dd2f94c7adf HEAD
Author: Zhiyi Zhang <zzhang at codeweavers.com>
Date:   Tue May 5 20:30:39 2020 +0800

    user32: Leave critical section before calling callbacks in
EnumDisplayMonitors().

    Previously, callbacks were called with a critical section held. It was
    intended that monitor handles passed to callbacks should always be valid.
    But it created a deadlock condition when callbacks call other functions
    which try to grab the critical section using a different thread. Tests
    also show that a monitor handle can be invalid after a display change.
    So do not hold the critical section when calling callbacks. Monitor
    handles will be checked when passed to GetMonitorInfo(), which is the
    sole function that consumes HMONITORs.

    Signed-off-by: Zhiyi Zhang <zzhang at codeweavers.com>
    Signed-off-by: Alexandre Julliard <julliard at winehq.org>

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list