- (djm) [atomicio.c] Fix spin avoidance for platforms that define
EWOULDBLOCK; patch from ben AT psc.edu
This commit is contained in:
parent
6ebefac25a
commit
ed626b42cc
|
@ -1,3 +1,7 @@
|
||||||
|
20070921
|
||||||
|
- (djm) [atomicio.c] Fix spin avoidance for platforms that define
|
||||||
|
EWOULDBLOCK; patch from ben AT psc.edu
|
||||||
|
|
||||||
20070917
|
20070917
|
||||||
- (djm) OpenBSD CVS Sync
|
- (djm) OpenBSD CVS Sync
|
||||||
- djm@cvs.openbsd.org 2007/08/23 02:49:43
|
- djm@cvs.openbsd.org 2007/08/23 02:49:43
|
||||||
|
@ -3258,4 +3262,4 @@
|
||||||
OpenServer 6 and add osr5bigcrypt support so when someone migrates
|
OpenServer 6 and add osr5bigcrypt support so when someone migrates
|
||||||
passwords between UnixWare and OpenServer they will still work. OK dtucker@
|
passwords between UnixWare and OpenServer they will still work. OK dtucker@
|
||||||
|
|
||||||
$Id: ChangeLog,v 1.4757 2007/09/17 15:32:32 tim Exp $
|
$Id: ChangeLog,v 1.4758 2007/09/21 03:12:49 djm Exp $
|
||||||
|
|
16
atomicio.c
16
atomicio.c
|
@ -57,13 +57,13 @@ atomicio(ssize_t (*f) (int, void *, size_t), int fd, void *_s, size_t n)
|
||||||
res = (f) (fd, s + pos, n - pos);
|
res = (f) (fd, s + pos, n - pos);
|
||||||
switch (res) {
|
switch (res) {
|
||||||
case -1:
|
case -1:
|
||||||
#ifdef EWOULDBLOCK
|
|
||||||
if (errno == EINTR || errno == EWOULDBLOCK)
|
|
||||||
#else
|
|
||||||
if (errno == EINTR)
|
if (errno == EINTR)
|
||||||
#endif
|
|
||||||
continue;
|
continue;
|
||||||
|
#ifdef EWOULDBLOCK
|
||||||
|
if (errno == EAGAIN || errno == EWOULDBLOCK) {
|
||||||
|
#else
|
||||||
if (errno == EAGAIN) {
|
if (errno == EAGAIN) {
|
||||||
|
#endif
|
||||||
(void)poll(&pfd, 1, -1);
|
(void)poll(&pfd, 1, -1);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -103,13 +103,13 @@ atomiciov(ssize_t (*f) (int, const struct iovec *, int), int fd,
|
||||||
res = (f) (fd, iov, iovcnt);
|
res = (f) (fd, iov, iovcnt);
|
||||||
switch (res) {
|
switch (res) {
|
||||||
case -1:
|
case -1:
|
||||||
#ifdef EWOULDBLOCK
|
|
||||||
if (errno == EINTR || errno == EWOULDBLOCK)
|
|
||||||
#else
|
|
||||||
if (errno == EINTR)
|
if (errno == EINTR)
|
||||||
#endif
|
|
||||||
continue;
|
continue;
|
||||||
|
#ifdef EWOULDBLOCK
|
||||||
|
if (errno == EAGAIN || errno == EWOULDBLOCK) {
|
||||||
|
#else
|
||||||
if (errno == EAGAIN) {
|
if (errno == EAGAIN) {
|
||||||
|
#endif
|
||||||
(void)poll(&pfd, 1, -1);
|
(void)poll(&pfd, 1, -1);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue