From: simon Date: Sat, 6 Nov 2010 17:22:38 +0000 (+0000) Subject: David Laight reports that sometimes reads on a serial port will X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/putty/commitdiff_plain/0620c88abd34d2aa7d47bb9dfd383be247728185 David Laight reports that sometimes reads on a serial port will attempt to block, and hence return EAGAIN/EWOULDBLOCK, in spite of the port having been reported readable by select(2). Don't treat those errors as fatal. git-svn-id: svn://svn.tartarus.org/sgt/putty@9020 cda61777-01e9-0310-a592-d414129be87e --- diff --git a/unix/uxser.c b/unix/uxser.c index 92961a7d..22f4a065 100644 --- a/unix/uxser.c +++ b/unix/uxser.c @@ -342,6 +342,14 @@ static int serial_select_result(int fd, int event) */ finished = TRUE; } else if (ret < 0) { +#ifdef EAGAIN + if (errno == EAGAIN) + return 1; /* spurious */ +#endif +#ifdef EWOULDBLOCK + if (errno == EWOULDBLOCK) + return 1; /* spurious */ +#endif perror("read serial port"); exit(1); } else if (ret > 0) {