summaryrefslogtreecommitdiffstats
path: root/source/lib
diff options
context:
space:
mode:
Diffstat (limited to 'source/lib')
-rw-r--r--source/lib/select.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/source/lib/select.c b/source/lib/select.c
index c654a4a02ca..396ecb5dd6b 100644
--- a/source/lib/select.c
+++ b/source/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;