diff options
| author | Quentin Young <qlyoung@cumulusnetworks.com> | 2017-06-05 20:18:48 +0000 |
|---|---|---|
| committer | Quentin Young <qlyoung@cumulusnetworks.com> | 2017-06-06 14:23:42 +0000 |
| commit | 82fc5591f440ee9810ce2c5d90d41a9f419062c8 (patch) | |
| tree | 9befe013dd5f46aed52d62c491fe425b51b6d649 /lib/thread.c | |
| parent | 8899960086f249fe07458c99ad8237f794f19dc8 (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.c | 3 |
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 |
