xserver: Branch 'master' - 2 commits
Jeremy Huddleston
jeremyhu at kemper.freedesktop.org
Wed Nov 19 10:55:39 PST 2008
mi/mieq.c | 27 +++++++++++++--------------
1 file changed, 13 insertions(+), 14 deletions(-)
New commits:
commit 19aac4274bbac55ce944acfaf3274a4403fe392e
Author: Jeremy Huddleston <jeremyhu at freedesktop.org>
Date: Wed Nov 19 10:55:29 2008 -0800
mi: Push screen-saver/DPMS handling to after the EQ pop operation.
This way we on't need to hold the mutex during the dixSaveScreens() call.
Signed-off-by: Jeremy Huddleston <jeremyhu at apple.com>
Signed-off-by: Tiago Vignatti <vignatti at c3sl.ufpr.br>
Signed-off-by: Peter Hutterer <peter.hutterer at redhat.com>
diff --git a/mi/mieq.c b/mi/mieq.c
index 7437966..82f0c66 100644
--- a/mi/mieq.c
+++ b/mi/mieq.c
@@ -314,16 +314,6 @@ mieqProcessInputEvents(void)
master = NULL;
while (miEventQueue.head != miEventQueue.tail) {
- if (screenIsSaved == SCREEN_SAVER_ON)
- dixSaveScreens (serverClient, SCREEN_SAVER_OFF, ScreenSaverReset);
-#ifdef DPMSExtension
- else if (DPMSPowerLevel != DPMSModeOn)
- SetScreenSaverTimer();
-
- if (DPMSPowerLevel != DPMSModeOn)
- DPMSSet(serverClient, DPMSModeOn);
-#endif
-
e = &miEventQueue.events[miEventQueue.head];
/* GenericEvents always have nevents == 1 */
@@ -346,6 +336,16 @@ mieqProcessInputEvents(void)
type = event->u.u.type;
master = (!dev->isMaster && dev->u.master) ? dev->u.master : NULL;
+ if (screenIsSaved == SCREEN_SAVER_ON)
+ dixSaveScreens (serverClient, SCREEN_SAVER_OFF, ScreenSaverReset);
+#ifdef DPMSExtension
+ else if (DPMSPowerLevel != DPMSModeOn)
+ SetScreenSaverTimer();
+
+ if (DPMSPowerLevel != DPMSModeOn)
+ DPMSSet(serverClient, DPMSModeOn);
+#endif
+
/* Custom event handler */
handler = miEventQueue.handlers[type];
commit 56d1793c435abbaababab031860f1160f09fff06
Author: Jeremy Huddleston <jeremyhu at freedesktop.org>
Date: Wed Nov 19 10:54:57 2008 -0800
mi: Only increment tail (push) when the event data is actually in the queue
Signed-off-by: Jeremy Huddleston <jeremyhu at apple.com>
Signed-off-by: Tiago Vignatti <vignatti at c3sl.ufpr.br>
Signed-off-by: Peter Hutterer <peter.hutterer at redhat.com>
diff --git a/mi/mieq.c b/mi/mieq.c
index 52bb841..7437966 100644
--- a/mi/mieq.c
+++ b/mi/mieq.c
@@ -122,7 +122,7 @@ mieqResizeEvents(int min_size)
void
mieqEnqueue(DeviceIntPtr pDev, xEvent *e)
{
- unsigned int oldtail = miEventQueue.tail, newtail;
+ unsigned int oldtail = miEventQueue.tail;
EventListPtr evt;
int isMotion = 0;
int evlen;
@@ -170,11 +170,10 @@ mieqEnqueue(DeviceIntPtr pDev, xEvent *e)
}
else {
static int stuck = 0;
- newtail = (oldtail + 1) % QUEUE_SIZE;
/* Toss events which come in late. Usually this means your server's
* stuck in an infinite loop somewhere, but SIGIO is still getting
* handled. */
- if (newtail == miEventQueue.head) {
+ if (((oldtail + 1) % QUEUE_SIZE) == miEventQueue.head) {
ErrorF("[mi] EQ overflowing. The server is probably stuck "
"in an infinite loop.\n");
if (!stuck) {
@@ -184,7 +183,6 @@ mieqEnqueue(DeviceIntPtr pDev, xEvent *e)
return;
}
stuck = 0;
- miEventQueue.tail = newtail;
}
evlen = sizeof(xEvent);
@@ -218,6 +216,7 @@ mieqEnqueue(DeviceIntPtr pDev, xEvent *e)
miEventQueue.events[oldtail].pDev = pDev;
miEventQueue.lastMotion = isMotion;
+ miEventQueue.tail = (oldtail + 1) % QUEUE_SIZE;
}
void
More information about the xorg-commit
mailing list