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;