Module: wine Branch: master Commit: 12cb04fd2f13707e5b7eeed24f0ef916e71cd4fb URL: https://source.winehq.org/git/wine.git/?a=commit;h=12cb04fd2f13707e5b7eeed24...
Author: Jacek Caban jacek@codeweavers.com Date: Tue Apr 19 15:31:53 2022 +0200
winex11: Directly use ntdll in display_device_init mutex.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Huw Davies huw@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/winex11.drv/display.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/dlls/winex11.drv/display.c b/dlls/winex11.drv/display.c index 928d2bd16f0..f90cc455c36 100644 --- a/dlls/winex11.drv/display.c +++ b/dlls/winex11.drv/display.c @@ -29,17 +29,21 @@ struct x11drv_display_device_handler desktop_handler;
HANDLE get_display_device_init_mutex(void) { - static const WCHAR init_mutexW[] = {'d','i','s','p','l','a','y','_','d','e','v','i','c','e','_','i','n','i','t',0}; - HANDLE mutex = CreateMutexW(NULL, FALSE, init_mutexW); - - WaitForSingleObject(mutex, INFINITE); + static const WCHAR init_mutexW[] = {'d','i','s','p','l','a','y','_','d','e','v','i','c','e','_','i','n','i','t'}; + UNICODE_STRING name = { sizeof(init_mutexW), sizeof(init_mutexW), (WCHAR *)init_mutexW }; + OBJECT_ATTRIBUTES attr; + HANDLE mutex = 0; + + InitializeObjectAttributes( &attr, &name, OBJ_OPENIF, NULL, NULL ); + NtCreateMutant( &mutex, MUTEX_ALL_ACCESS, &attr, FALSE ); + if (mutex) NtWaitForSingleObject( mutex, FALSE, NULL ); return mutex; }
void release_display_device_init_mutex(HANDLE mutex) { - ReleaseMutex(mutex); - CloseHandle(mutex); + NtReleaseMutant( mutex, NULL ); + NtClose( mutex ); }
POINT virtual_screen_to_root(INT x, INT y)