[MINOR] allow null timeouts for past events in select
diff --git a/src/ev_select.c b/src/ev_select.c
index fb5cc41..1b897de 100644
--- a/src/ev_select.c
+++ b/src/ev_select.c
@@ -90,12 +90,14 @@
/* allow select to return immediately when needed */
delta.tv_sec = delta.tv_usec = 0;
if (tv_isset(exp)) {
- tv_remain(&now, exp, &delta);
- /* To avoid eventual select loops due to timer precision */
- delta.tv_usec += SCHEDULER_RESOLUTION * 1000;
- if (delta.tv_usec >= 1000000) {
- delta.tv_usec -= 1000000;
- delta.tv_sec ++;
+ 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;
+ if (delta.tv_usec >= 1000000) {
+ delta.tv_usec -= 1000000;
+ delta.tv_sec ++;
+ }
}
}