From: Jacek Caban jacek@codeweavers.com
Signed-off-by: Jacek Caban jacek@codeweavers.com --- dlls/winemac.drv/gdi.c | 28 ++++++++++------------------ 1 file changed, 10 insertions(+), 18 deletions(-)
diff --git a/dlls/winemac.drv/gdi.c b/dlls/winemac.drv/gdi.c index 264781c6ac1..673dca40270 100644 --- a/dlls/winemac.drv/gdi.c +++ b/dlls/winemac.drv/gdi.c @@ -47,15 +47,7 @@ static int device_data_valid; /* do the above variables have up-to-date values
int retina_on = FALSE;
-static CRITICAL_SECTION device_data_section; -static CRITICAL_SECTION_DEBUG critsect_debug = -{ - 0, 0, &device_data_section, - { &critsect_debug.ProcessLocksList, &critsect_debug.ProcessLocksList }, - 0, 0, { (DWORD_PTR)(__FILE__ ": device_data_section") } -}; -static CRITICAL_SECTION device_data_section = { &critsect_debug, -1, 0, 0, 0, 0 }; - +static pthread_mutex_t device_data_mutex = PTHREAD_MUTEX_INITIALIZER;
static const struct user_driver_funcs macdrv_funcs;
@@ -90,7 +82,7 @@ CGRect macdrv_get_desktop_rect(void) { CGRect ret;
- EnterCriticalSection(&device_data_section); + pthread_mutex_lock(&device_data_mutex);
if (!device_data_valid) { @@ -99,7 +91,7 @@ CGRect macdrv_get_desktop_rect(void) } ret = desktop_rect;
- LeaveCriticalSection(&device_data_section); + pthread_mutex_unlock(&device_data_mutex);
TRACE("%s\n", wine_dbgstr_cgrect(ret));
@@ -151,9 +143,9 @@ static void device_init(void)
void macdrv_reset_device_metrics(void) { - EnterCriticalSection(&device_data_section); + pthread_mutex_lock(&device_data_mutex); device_data_valid = FALSE; - LeaveCriticalSection(&device_data_section); + pthread_mutex_unlock(&device_data_mutex); }
@@ -161,9 +153,9 @@ static MACDRV_PDEVICE *create_mac_physdev(void) { MACDRV_PDEVICE *physDev;
- EnterCriticalSection(&device_data_section); + pthread_mutex_lock(&device_data_mutex); if (!device_data_valid) device_init(); - LeaveCriticalSection(&device_data_section); + pthread_mutex_unlock(&device_data_mutex);
if (!(physDev = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*physDev)))) return NULL;
@@ -227,7 +219,7 @@ static INT CDECL macdrv_GetDeviceCaps(PHYSDEV dev, INT cap) { INT ret;
- EnterCriticalSection(&device_data_section); + pthread_mutex_lock(&device_data_mutex);
if (!device_data_valid) device_init();
@@ -245,7 +237,7 @@ static INT CDECL macdrv_GetDeviceCaps(PHYSDEV dev, INT cap) case HORZRES: case VERTRES: default: - LeaveCriticalSection(&device_data_section); + pthread_mutex_unlock(&device_data_mutex); dev = GET_NEXT_PHYSDEV( dev, pGetDeviceCaps ); ret = dev->funcs->pGetDeviceCaps( dev, cap ); if ((cap == HORZRES || cap == VERTRES) && retina_on) @@ -255,7 +247,7 @@ static INT CDECL macdrv_GetDeviceCaps(PHYSDEV dev, INT cap)
TRACE("cap %d -> %d\n", cap, ret);
- LeaveCriticalSection(&device_data_section); + pthread_mutex_unlock(&device_data_mutex); return ret; }