diff options
author | Damien Miller <djm@mindrot.org> | 2007-09-21 13:12:49 +1000 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2007-09-21 13:12:49 +1000 |
commit | ed626b42cc4414235fc2181cc139362e5e054b04 (patch) | |
tree | 614e67ed7133c6766ea22c5d8c7588f1f0970362 /atomicio.c | |
parent | 6ebefac25a5fb7a900cd8342390cfac7a81bd35d (diff) |
- (djm) [atomicio.c] Fix spin avoidance for platforms that define
EWOULDBLOCK; patch from ben AT psc.edu
Diffstat (limited to 'atomicio.c')
-rw-r--r-- | atomicio.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/atomicio.c b/atomicio.c index f32ff85ba..62ee40282 100644 --- a/atomicio.c +++ b/atomicio.c | |||
@@ -57,13 +57,13 @@ atomicio(ssize_t (*f) (int, void *, size_t), int fd, void *_s, size_t n) | |||
57 | res = (f) (fd, s + pos, n - pos); | 57 | res = (f) (fd, s + pos, n - pos); |
58 | switch (res) { | 58 | switch (res) { |
59 | case -1: | 59 | case -1: |
60 | #ifdef EWOULDBLOCK | ||
61 | if (errno == EINTR || errno == EWOULDBLOCK) | ||
62 | #else | ||
63 | if (errno == EINTR) | 60 | if (errno == EINTR) |
64 | #endif | ||
65 | continue; | 61 | continue; |
62 | #ifdef EWOULDBLOCK | ||
63 | if (errno == EAGAIN || errno == EWOULDBLOCK) { | ||
64 | #else | ||
66 | if (errno == EAGAIN) { | 65 | if (errno == EAGAIN) { |
66 | #endif | ||
67 | (void)poll(&pfd, 1, -1); | 67 | (void)poll(&pfd, 1, -1); |
68 | continue; | 68 | continue; |
69 | } | 69 | } |
@@ -103,13 +103,13 @@ atomiciov(ssize_t (*f) (int, const struct iovec *, int), int fd, | |||
103 | res = (f) (fd, iov, iovcnt); | 103 | res = (f) (fd, iov, iovcnt); |
104 | switch (res) { | 104 | switch (res) { |
105 | case -1: | 105 | case -1: |
106 | #ifdef EWOULDBLOCK | ||
107 | if (errno == EINTR || errno == EWOULDBLOCK) | ||
108 | #else | ||
109 | if (errno == EINTR) | 106 | if (errno == EINTR) |
110 | #endif | ||
111 | continue; | 107 | continue; |
108 | #ifdef EWOULDBLOCK | ||
109 | if (errno == EAGAIN || errno == EWOULDBLOCK) { | ||
110 | #else | ||
112 | if (errno == EAGAIN) { | 111 | if (errno == EAGAIN) { |
112 | #endif | ||
113 | (void)poll(&pfd, 1, -1); | 113 | (void)poll(&pfd, 1, -1); |
114 | continue; | 114 | continue; |
115 | } | 115 | } |