Merge remote-tracking branch 'herrb/master'

This commit is contained in:
Keith Packard 2014-02-24 16:27:52 -08:00
commit 1940508a4a

View File

@ -2731,27 +2731,24 @@ IdleTimeBlockHandler(void *pCounter, struct timeval **wt, void *LastSelectMask)
* If we've been idle more than it, and someone wants to know about * If we've been idle more than it, and someone wants to know about
* that level-triggered, schedule an immediate wakeup. * that level-triggered, schedule an immediate wakeup.
*/ */
unsigned long timeout = -1;
if (XSyncValueLessThan(idle, *greater)) { if (XSyncValueLessThan(idle, *greater)) {
XSyncValue value; XSyncValue value;
Bool overflow; Bool overflow;
XSyncValueSubtract(&value, *greater, idle, &overflow); XSyncValueSubtract(&value, *greater, idle, &overflow);
timeout = min(timeout, XSyncValueLow32(value)); AdjustWaitForDelay(wt, XSyncValueLow32(value));
} }
else { else {
for (list = counter->sync.pTriglist; list; for (list = counter->sync.pTriglist; list;
list = list->next) { list = list->next) {
trig = list->pTrigger; trig = list->pTrigger;
if (trig->CheckTrigger(trig, old_idle)) { if (trig->CheckTrigger(trig, old_idle)) {
timeout = min(timeout, 0); AdjustWaitForDelay(wt, 0);
break; break;
} }
} }
} }
AdjustWaitForDelay(wt, timeout);
} }
counter->value = old_idle; /* pop */ counter->value = old_idle; /* pop */