trc: do not exit on EINTR from read - plan9port - [fork] Plan 9 from user space
 (HTM) git clone git://src.adamsgaard.dk/plan9port
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit c3ae85a004c8714fc653629a983327d9a15b36da
 (DIR) parent 0cc1faf015a253ef64b97a8453b6fc959c0ee512
 (HTM) Author: Russ Cox <rsc@swtch.com>
       Date:   Thu, 14 Jan 2021 09:59:54 -0500
       
       rc: do not exit on EINTR from read
       
       This happens if lldb attaches to rc.
       
       Diffstat:
         M src/cmd/rc/io.c                     |      11 ++++++++++-
       
       1 file changed, 10 insertions(+), 1 deletion(-)
       ---
 (DIR) diff --git a/src/cmd/rc/io.c b/src/cmd/rc/io.c
       t@@ -1,4 +1,5 @@
        #include <limits.h>
       +#include <errno.h>
        #include "rc.h"
        #include "exec.h"
        #include "io.h"
       t@@ -257,7 +258,15 @@ int
        emptybuf(io *f)
        {
                int n;
       -        if(f->fd==-1 || (n = Read(f->fd, f->buf, NBUF))<=0) return EOF;
       +        if(f->fd==-1)
       +                return EOF;
       +Loop:
       +        errno = 0;
       +        n = Read(f->fd, f->buf, NBUF);
       +        if(n < 0 && errno == EINTR)
       +                goto Loop;
       +        if(n <= 0)
       +                return EOF;
                f->bufp = f->buf;
                f->ebuf = f->buf+n;
                return *f->bufp++&0xff;