Jacek Caban : winemac: Directly use ntdll for display device mutex.
Alexandre Julliard
julliard at winehq.org
Tue May 17 15:37:22 CDT 2022
Module: wine
Branch: master
Commit: e04073188132c3508485bf8ec8441f8e48a6b568
URL: https://source.winehq.org/git/wine.git/?a=commit;h=e04073188132c3508485bf8ec8441f8e48a6b568
Author: Jacek Caban <jacek at codeweavers.com>
Date: Fri May 13 22:14:54 2022 +0200
winemac: Directly use ntdll for display device mutex.
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/winemac.drv/display.c | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/dlls/winemac.drv/display.c b/dlls/winemac.drv/display.c
index 75904bd6f5f..a5abf426cc5 100644
--- a/dlls/winemac.drv/display.c
+++ b/dlls/winemac.drv/display.c
@@ -74,17 +74,21 @@ static BOOL inited_original_display_mode;
static 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;
}
static void release_display_device_init_mutex(HANDLE mutex)
{
- ReleaseMutex(mutex);
- CloseHandle(mutex);
+ NtReleaseMutant(mutex, NULL);
+ NtClose(mutex);
}
static BOOL get_display_device_reg_key(const WCHAR *device_name, WCHAR *key, unsigned len)
More information about the wine-cvs
mailing list