(safe_read, safe_write): Handle EINTR.
authorRichard Stallman <rms@gnu.org>
Fri, 5 Nov 1993 21:43:08 +0000 (21:43 +0000)
committerRichard Stallman <rms@gnu.org>
Fri, 5 Nov 1993 21:43:08 +0000 (21:43 +0000)
From-SVN: r6015

gcc/cccp.c
gcc/protoize.c

index 3581dc015e0f8beadb24092d15be39beda5a5bbc..434e053e2d163fdec6f1a1474de095c24e5182c4 100644 (file)
@@ -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;
   }
index fee6a15fe01ab8a15e6eafbe16906b9fa83f78d7..ef793d3c5aaa2a47a7810d38d6f8e3030fd22ef5 100644 (file)
@@ -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;
   }