[MINOR] allow null timeouts for past events in select

This commit is contained in:
Willy Tarreau 2007-05-14 03:16:06 +02:00
parent 79b8a62ff6
commit d9b744104e

View File

@ -90,6 +90,7 @@ REGPRM2 static void _do_poll(struct poller *p, struct timeval *exp)
/* allow select to return immediately when needed */
delta.tv_sec = delta.tv_usec = 0;
if (tv_isset(exp)) {
if (tv_islt(&now, exp)) {
tv_remain(&now, exp, &delta);
/* To avoid eventual select loops due to timer precision */
delta.tv_usec += SCHEDULER_RESOLUTION * 1000;
@ -98,6 +99,7 @@ REGPRM2 static void _do_poll(struct poller *p, struct timeval *exp)
delta.tv_sec ++;
}
}
}
/* let's restore fdset state */