@@ -531,8 +534,12 @@ static int unix_write(int fd, const uint8_t *buf, int len1)
      while (len>  0) {
          ret = write(fd, buf, len);
          if (ret<  0) {
-            if (errno != EINTR&&  errno != EAGAIN)
+            if (len1 - len) {
+                return len1 - len;
+            }
+            if (errno != EINTR&&  errno != EAGAIN) {
                  return -1;
+            }

This makes unix_write pass -EINTR up to the caller which it didn't before.

cheers,
  Gerd



Reply via email to