From b3ea0a2473e8fce2d423e027bb1248b5b0b28601 Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Mon, 17 Nov 2008 22:36:14 -0800 Subject: [PATCH] mi: Don't hold the event mutex during SaveScreens() (cherry picked from commit 17eebd7c108aab6e3303edaf18d8fecc91c09ab2) --- mi/mieq.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/mi/mieq.c b/mi/mieq.c index 175ded059..1762d5490 100644 --- a/mi/mieq.c +++ b/mi/mieq.c @@ -246,6 +246,14 @@ mieqProcessInputEvents(void) pthread_mutex_lock(&miEventQueueMutex); #endif while (miEventQueue.head != miEventQueue.tail) { + memcpy(&e, &miEventQueue.events[miEventQueue.head], sizeof(EventRec)); + handler = miEventQueue.handlers[e.event[0].u.u.type]; + miEventQueue.head = (miEventQueue.head + 1) % QUEUE_SIZE; + +#ifdef XQUARTZ + pthread_mutex_unlock(&miEventQueueMutex); +#endif + if (screenIsSaved == SCREEN_SAVER_ON) dixSaveScreens (serverClient, SCREEN_SAVER_OFF, ScreenSaverReset); #ifdef DPMSExtension @@ -256,14 +264,6 @@ mieqProcessInputEvents(void) DPMSSet(serverClient, DPMSModeOn); #endif - memcpy(&e, &miEventQueue.events[miEventQueue.head], sizeof(EventRec)); - handler = miEventQueue.handlers[e.event[0].u.u.type]; - miEventQueue.head = (miEventQueue.head + 1) % QUEUE_SIZE; - -#ifdef XQUARTZ - pthread_mutex_unlock(&miEventQueueMutex); -#endif - if (handler) { /* If someone's registered a custom event handler, let them * steal it. */