From 61cb43e243a82d4037e919ec996fcb840c669e9c Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Wed, 26 Jan 2011 21:47:52 +0200 Subject: [PATCH] ioloop: Use -1 for infinite poll/epoll timeout rather than INT_MAX. Should improve performance a tiny bit and also works around a CPU eater bug in Linux 2.6.37. --- src/lib/ioloop.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/lib/ioloop.c b/src/lib/ioloop.c index 5d393a3d5e..9ce1f44820 100644 --- a/src/lib/ioloop.c +++ b/src/lib/ioloop.c @@ -252,11 +252,12 @@ int io_loop_get_wait_time(struct ioloop *ioloop, struct timeval *tv_r) item = priorityq_peek(ioloop->timeouts); timeout = (struct timeout *)item; if (timeout == NULL) { - /* no timeouts. give it INT_MAX msecs. */ + /* no timeouts. use INT_MAX msecs for timeval and + return -1 for poll/epoll infinity. */ tv_r->tv_sec = INT_MAX / 1000; tv_r->tv_usec = 0; ioloop->next_max_time = (1ULL << (TIME_T_MAX_BITS-1)) - 1; - return INT_MAX; + return -1; } tv_now.tv_sec = 0; -- 2.47.3