--- poll/unix/port.c.orig 2009-08-21 08:16:52.140947520 -0400 +++ poll/unix/port.c 2009-08-21 08:18:58.662675195 -0400 @@ -325,6 +325,11 @@ apr_atomic_dec32(&pollset->waiting); (*num) = nget; + if (ret == -1 && nget && + (errno == ETIME || errno == EINTR)) { + ret = 0; + } + if (ret == -1) { (*num) = 0; if (errno == EINTR) { @@ -490,6 +495,11 @@ ret = port_getn(pollcb->port_fd, pollcb->port_set, pollcb->nalloc, &nget, tvptr); + if (ret == -1 && nget && + (errno == ETIME || errno == EINTR)) { + ret = 0; + } + if (ret == -1) { if (errno == ETIME || errno == EINTR) { rv = APR_TIMEUP;