Commit e0ebaaa5 by Vicent Marti

Merge pull request #2121 from bk2204/ewouldblock

Check for EWOULDBLOCK as well as EAGAIN on write.
parents dbd2ca35 0197d410
......@@ -189,7 +189,7 @@ int p_write(git_file fd, const void *buf, size_t cnt)
r = write(fd, b, cnt);
#endif
if (r < 0) {
if (errno == EINTR || errno == EAGAIN)
if (errno == EINTR || GIT_ISBLOCKED(errno))
continue;
return -1;
}
......
......@@ -29,6 +29,15 @@
#define O_CLOEXEC 0
#endif
/* Determine whether an errno value indicates that a read or write failed
* because the descriptor is blocked.
*/
#if defined(EWOULDBLOCK)
#define GIT_ISBLOCKED(e) ((e) == EAGAIN || (e) == EWOULDBLOCK)
#else
#define GIT_ISBLOCKED(e) ((e) == EAGAIN)
#endif
typedef int git_file;
/**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment