mirror of
https://github.com/9fans/plan9port.git
synced 2025-01-12 11:10:07 +00:00
rc: do not exit on EINTR from read
This happens if lldb attaches to rc.
This commit is contained in:
parent
0cc1faf015
commit
c3ae85a004
1 changed files with 10 additions and 1 deletions
|
@ -1,4 +1,5 @@
|
|||
#include <limits.h>
|
||||
#include <errno.h>
|
||||
#include "rc.h"
|
||||
#include "exec.h"
|
||||
#include "io.h"
|
||||
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue