mi: Don't hold the event mutex during SaveScreens()

This commit is contained in:
Jeremy Huddleston 2008-11-17 22:36:14 -08:00
parent 477c6968a8
commit 17eebd7c10

View file

@ -237,6 +237,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)
SaveScreens (SCREEN_SAVER_OFF, ScreenSaverReset);
#ifdef DPMSExtension
@ -247,14 +255,6 @@ mieqProcessInputEvents(void)
DPMSSet(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. */