Merge remote-tracking branch 'herrb/master'
This commit is contained in:
commit
1940508a4a
|
@ -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
|
||||
* that level-triggered, schedule an immediate wakeup.
|
||||
*/
|
||||
unsigned long timeout = -1;
|
||||
|
||||
if (XSyncValueLessThan(idle, *greater)) {
|
||||
XSyncValue value;
|
||||
Bool overflow;
|
||||
|
||||
XSyncValueSubtract(&value, *greater, idle, &overflow);
|
||||
timeout = min(timeout, XSyncValueLow32(value));
|
||||
AdjustWaitForDelay(wt, XSyncValueLow32(value));
|
||||
}
|
||||
else {
|
||||
for (list = counter->sync.pTriglist; list;
|
||||
list = list->next) {
|
||||
trig = list->pTrigger;
|
||||
if (trig->CheckTrigger(trig, old_idle)) {
|
||||
timeout = min(timeout, 0);
|
||||
AdjustWaitForDelay(wt, 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
AdjustWaitForDelay(wt, timeout);
|
||||
}
|
||||
|
||||
counter->value = old_idle; /* pop */
|
||||
|
|
Loading…
Reference in New Issue
Block a user