From: Richard Stallman Date: Fri, 5 Nov 1993 21:43:08 +0000 (+0000) Subject: (safe_read, safe_write): Handle EINTR. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c9a8a295f8a7bfc5ee71ea636ab9f6d8a7c362c3;p=gcc.git (safe_read, safe_write): Handle EINTR. From-SVN: r6015 --- diff --git a/gcc/cccp.c b/gcc/cccp.c index 3581dc015e0..434e053e2d1 100644 --- a/gcc/cccp.c +++ b/gcc/cccp.c @@ -993,7 +993,13 @@ safe_read (desc, ptr, len) while (left > 0) { int nchars = read (desc, ptr, left); if (nchars < 0) - return nchars; + { +#ifdef EINTR + if (errno == EINTR) + continue; +#endif + return nchars; + } if (nchars == 0) break; ptr += nchars; @@ -1014,7 +1020,13 @@ safe_write (desc, ptr, len) while (len > 0) { int written = write (desc, ptr, len); if (written < 0) - pfatal_with_name (out_fname); + { +#ifdef EINTR + if (errno == EINTR) + continue; +#endif + pfatal_with_name (out_fname); + } ptr += written; len -= written; } diff --git a/gcc/protoize.c b/gcc/protoize.c index fee6a15fe01..ef793d3c5aa 100644 --- a/gcc/protoize.c +++ b/gcc/protoize.c @@ -745,7 +745,13 @@ safe_read (desc, ptr, len) while (left > 0) { int nchars = read (desc, ptr, left); if (nchars < 0) - return nchars; + { +#ifdef EINTR + if (errno == EINTR) + continue; +#endif + return nchars; + } if (nchars == 0) break; ptr += nchars; @@ -767,8 +773,14 @@ safe_write (desc, ptr, len, out_fname) while (len > 0) { int written = write (desc, ptr, len); if (written < 0) - fprintf (stderr, "%s: error writing file `%s': %s\n", - pname, shortpath (NULL, out_fname), sys_errlist[errno]); + { +#ifdef EINTR + if (errno == EINTR) + continue; +#endif + fprintf (stderr, "%s: error writing file `%s': %s\n", + pname, shortpath (NULL, out_fname), sys_errlist[errno]); + } ptr += written; len -= written; }