From 82fc5591f440ee9810ce2c5d90d41a9f419062c8 Mon Sep 17 00:00:00 2001 From: Quentin Young Date: Mon, 5 Jun 2017 20:18:48 +0000 Subject: [PATCH] lib: allow infinite sleep in poll() If fd_poll() is called with no file descriptors, an incorrect check in the function prelude causes it to return instantly; for a thread that wishes to poll but has no file descriptors, this results in busy waiting. Desired behavior is to block. Signed-off-by: Quentin Young --- lib/thread.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/lib/thread.c b/lib/thread.c index 848e39e1ae..2280b96316 100644 --- a/lib/thread.c +++ b/lib/thread.c @@ -647,9 +647,6 @@ static int fd_poll (struct thread_master *m, struct pollfd *pfds, nfds_t pfdsize, nfds_t count, struct timeval *timer_wait) { - if (count == 0) - return 0; - /* If timer_wait is null here, that means poll() should block indefinitely, * unless the thread_master has overriden it by setting ->selectpoll_timeout. * If the value is positive, it specifies the maximum number of milliseconds -- 2.39.5