From 20d16947190d17f9ed8db983bee6cb7bd20722b5 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Sat, 5 Jul 2008 09:36:58 +1000 Subject: - (djm) [atomicio.c configure.ac] Disable poll() fallback in atomiciov for Tru64. readv doesn't seem to be a comparable object there. bz#1386, patch from dtucker@ ok me --- atomicio.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'atomicio.c') diff --git a/atomicio.c b/atomicio.c index bb44c323..a6b2d127 100644 --- a/atomicio.c +++ b/atomicio.c @@ -97,8 +97,10 @@ atomiciov(ssize_t (*f) (int, const struct iovec *, int), int fd, /* Make a copy of the iov array because we may modify it below */ memcpy(iov, _iov, iovcnt * sizeof(*_iov)); +#ifndef BROKEN_READV_COMPARISON pfd.fd = fd; pfd.events = f == readv ? POLLIN : POLLOUT; +#endif for (; iovcnt > 0 && iov[0].iov_len > 0;) { res = (f) (fd, iov, iovcnt); switch (res) { @@ -106,7 +108,9 @@ atomiciov(ssize_t (*f) (int, const struct iovec *, int), int fd, if (errno == EINTR) continue; if (errno == EAGAIN || errno == EWOULDBLOCK) { +#ifndef BROKEN_READV_COMPARISON (void)poll(&pfd, 1, -1); +#endif continue; } return 0; -- cgit v1.2.3