summaryrefslogtreecommitdiff
path: root/source3/lib/select.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2001-02-23 00:46:28 +0000
committerJeremy Allison <jra@samba.org>2001-02-23 00:46:28 +0000
commit37d190817e18eddd8605d0fe7476b188dd3aafad (patch)
tree2e18780fabb3b65abd1434e981dfcdf6569f77c3 /source3/lib/select.c
parent58c1dd8d5b3c5474fd6d31d6b1b3f6eb8516a41b (diff)
downloadsamba-37d190817e18eddd8605d0fe7476b188dd3aafad.tar.gz
samba-37d190817e18eddd8605d0fe7476b188dd3aafad.tar.bz2
samba-37d190817e18eddd8605d0fe7476b188dd3aafad.zip
Always increment even if the read fails (otherwise we spin if we hit the kernel bug...).
Jeremy (This used to be commit d388dfa53b3a7a2dcce6d5591531d6ade0cbab62)
Diffstat (limited to 'source3/lib/select.c')
-rw-r--r--source3/lib/select.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/source3/lib/select.c b/source3/lib/select.c
index c654a4a02c..396ecb5dd6 100644
--- a/source3/lib/select.c
+++ b/source3/lib/select.c
@@ -98,7 +98,10 @@ int sys_select(int maxfd, fd_set *fds,struct timeval *tval)
while (pipe_written != pipe_read) {
char c;
- if (read(select_pipe[0], &c, 1) == 1) pipe_read++;
+ /* Due to the linux kernel bug in 2.0.x, we
+ * always increment here even if the read failed... */
+ read(select_pipe[0], &c, 1);
+ pipe_read++;
}
errno = saved_errno;