diff --git a/src/ev_epoll.c b/src/ev_epoll.c
index 039327d..6c09c04 100644
--- a/src/ev_epoll.c
+++ b/src/ev_epoll.c
@@ -103,7 +103,7 @@
 /*
  * Linux epoll() poller
  */
-REGPRM2 static void _do_poll(struct poller *p, int exp)
+REGPRM3 static void _do_poll(struct poller *p, int exp, int wake)
 {
 	int status;
 	int fd;
@@ -147,7 +147,7 @@
 	thread_harmless_now();
 
 	/* now let's wait for polled events */
-	wait_time = compute_poll_timeout(exp);
+	wait_time = wake ? 0 : compute_poll_timeout(exp);
 	tv_entering_poll();
 	activity_count_runtime();
 	do {
@@ -160,7 +160,7 @@
 			break;
 		if (timeout || !wait_time)
 			break;
-		if (signal_queue_len)
+		if (signal_queue_len || wake)
 			break;
 		if (tick_isset(exp) && tick_is_expired(exp, now_ms))
 			break;
diff --git a/src/ev_evports.c b/src/ev_evports.c
index dbad7b7..eae72d0 100644
--- a/src/ev_evports.c
+++ b/src/ev_evports.c
@@ -96,7 +96,7 @@
  * "src/fd.c" for more information.
  */
 
-REGPRM2 static void _do_poll(struct poller *p, int exp)
+REGPRM3 static void _do_poll(struct poller *p, int exp, int wake)
 {
 	int i;
 	int wait_time;
@@ -144,7 +144,7 @@
 	/*
 	 * Determine how long to wait for events to materialise on the port.
 	 */
-	wait_time = compute_poll_timeout(exp);
+	wait_time = wake ? 0 : compute_poll_timeout(exp);
 	tv_entering_poll();
 	activity_count_runtime();
 
@@ -183,7 +183,7 @@
 			break;
 		if (timeout || !wait_time)
 			break;
-		if (signal_queue_len)
+		if (signal_queue_len || wake)
 			break;
 		if (tick_isset(exp) && tick_is_expired(exp, now_ms))
 			break;
diff --git a/src/ev_kqueue.c b/src/ev_kqueue.c
index 674551e..aea2ab7 100644
--- a/src/ev_kqueue.c
+++ b/src/ev_kqueue.c
@@ -74,7 +74,7 @@
 /*
  * kqueue() poller
  */
-REGPRM2 static void _do_poll(struct poller *p, int exp)
+REGPRM3 static void _do_poll(struct poller *p, int exp, int wake)
 {
 	int status;
 	int count, fd, wait_time;
@@ -132,7 +132,7 @@
 	fd_nbupdt = 0;
 
 	/* now let's wait for events */
-	wait_time = compute_poll_timeout(exp);
+	wait_time = wake ? 0 : compute_poll_timeout(exp);
 	fd = global.tune.maxpollevents;
 	tv_entering_poll();
 	activity_count_runtime();
@@ -155,7 +155,7 @@
 			break;
 		if (timeout || !wait_time)
 			break;
-		if (signal_queue_len)
+		if (signal_queue_len || wake)
 			break;
 		if (tick_isset(exp) && tick_is_expired(exp, now_ms))
 			break;
diff --git a/src/ev_poll.c b/src/ev_poll.c
index 863b838..54812f5 100644
--- a/src/ev_poll.c
+++ b/src/ev_poll.c
@@ -88,7 +88,7 @@
 /*
  * Poll() poller
  */
-REGPRM2 static void _do_poll(struct poller *p, int exp)
+REGPRM3 static void _do_poll(struct poller *p, int exp, int wake)
 {
 	int status;
 	int fd;
@@ -194,7 +194,7 @@
 	}
 
 	/* now let's wait for events */
-	wait_time = compute_poll_timeout(exp);
+	wait_time = wake ? 0 : compute_poll_timeout(exp);
 	tv_entering_poll();
 	activity_count_runtime();
 	status = poll(poll_events, nbfd, wait_time);
diff --git a/src/ev_select.c b/src/ev_select.c
index 3591f1e..0ccf2f1 100644
--- a/src/ev_select.c
+++ b/src/ev_select.c
@@ -79,7 +79,7 @@
 /*
  * Select() poller
  */
-REGPRM2 static void _do_poll(struct poller *p, int exp)
+REGPRM3 static void _do_poll(struct poller *p, int exp, int wake)
 {
 	int status;
 	int fd, i;
@@ -162,7 +162,7 @@
 	}
 
 	/* now let's wait for events */
-	delta_ms = compute_poll_timeout(exp);
+	delta_ms = wake ? 0 : compute_poll_timeout(exp);
 	delta.tv_sec  = (delta_ms / 1000);
 	delta.tv_usec = (delta_ms % 1000) * 1000;
 	tv_entering_poll();
diff --git a/src/haproxy.c b/src/haproxy.c
index 306c34f..35dd514 100644
--- a/src/haproxy.c
+++ b/src/haproxy.c
@@ -2505,7 +2505,7 @@
 /* Runs the polling loop */
 static void run_poll_loop()
 {
-	int next, exp;
+	int next, wake;
 
 	tv_update_date(0,1);
 	while (1) {
@@ -2525,7 +2525,7 @@
 			break;
 
 		/* expire immediately if events are pending */
-		exp = now_ms;
+		wake = 1;
 		if (fd_cache_mask & tid_bit)
 			activity[tid].wake_cache++;
 		else if (active_tasks_mask & tid_bit)
@@ -2539,11 +2539,11 @@
 				activity[tid].wake_tasks++;
 				_HA_ATOMIC_AND(&sleeping_thread_mask, ~tid_bit);
 			} else
-				exp = next;
+				wake = 0;
 		}
 
 		/* The poller will ensure it returns around <next> */
-		cur_poller.poll(&cur_poller, exp);
+		cur_poller.poll(&cur_poller, next, wake);
 		if (sleeping_thread_mask & tid_bit)
 			_HA_ATOMIC_AND(&sleeping_thread_mask, ~tid_bit);
 		fd_process_cached_events();
