@@ -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