50aeb5e777
This fixes a deadlock in the Steel Series Engine installer, between the "user_section" lock and the loader lock. Currently user32 takes the "user_section" lock during THREAD_DETACH, i.e. while the loader lock is held. However, it is also possible for a thread to take the locks in the reverse order. The observed path is: - register_builtin() - LoadCursorA() - get_display_bpp() - get_display_dc() - CreateDCW() - GetDeviceCaps(DESKTOPHORZRES) - GetSystemMetrics(SM_CXVIRTUALSCREEN) - EnumDisplayMonitors() - update_monitor_cache() Since we now rely on setupapi for fundamental tasks such as determining screen size, it doesn't make much sense to delay-load it. Signed-off-by: Zebediah Figura <z.figura12@gmail.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org> |
||
---|---|---|
.. | ||
resources | ||
tests | ||
Makefile.in | ||
button.c | ||
caret.c | ||
class.c | ||
clipboard.c | ||
combo.c | ||
controls.h | ||
cursoricon.c | ||
dde_client.c | ||
dde_misc.c | ||
dde_private.h | ||
dde_server.c | ||
defdlg.c | ||
defwnd.c | ||
desktop.c | ||
dialog.c | ||
driver.c | ||
edit.c | ||
exticon.c | ||
focus.c | ||
hook.c | ||
icontitle.c | ||
input.c | ||
listbox.c | ||
lstr.c | ||
mdi.c | ||
menu.c | ||
message.c | ||
misc.c | ||
msgbox.c | ||
nonclient.c | ||
painting.c | ||
property.c | ||
rawinput.c | ||
resource.c | ||
resources.h | ||
scroll.c | ||
spy.c | ||
static.c | ||
sysparams.c | ||
text.c | ||
uitools.c | ||
user32.rc | ||
user32.spec | ||
user_main.c | ||
user_private.h | ||
win.c | ||
win.h | ||
winhelp.c | ||
winpos.c | ||
winproc.c | ||
winstation.c | ||
wsprintf.c |