summaryrefslogtreecommitdiff
path: root/lib/thread.c
diff options
context:
space:
mode:
authorQuentin Young <qlyoung@cumulusnetworks.com>2017-06-05 20:18:48 +0000
committerQuentin Young <qlyoung@cumulusnetworks.com>2017-06-06 14:23:42 +0000
commit82fc5591f440ee9810ce2c5d90d41a9f419062c8 (patch)
tree9befe013dd5f46aed52d62c491fe425b51b6d649 /lib/thread.c
parent8899960086f249fe07458c99ad8237f794f19dc8 (diff)
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 <qlyoung@cumulusnetworks.com>
Diffstat (limited to 'lib/thread.c')
-rw-r--r--lib/thread.c3
1 files changed, 0 insertions, 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