https://bugs.winehq.org/show_bug.cgi?id=49094
Patrick Donnelly bat.misc@batbytes.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Fixed by SHA1| |449ca2fbf9e44a40ff2cc6eedad | |a8dd2f94c7adf Resolution|--- |FIXED
--- Comment #1 from Patrick Donnelly bat.misc@batbytes.com --- It appears this commit fixes the issue:
commit 449ca2fbf9e44a40ff2cc6eedada8dd2f94c7adf HEAD Author: Zhiyi Zhang zzhang@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@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org