ap_canonical_errror() for Unix now maps EWOULDBLOCK to EAGAIN/APR_EAGAIN
when appropriate so that the changes here (as well as bjh's changes from a
few days ago) to call ap_canonical_error() before comparing with EWOULDBLOCK
will work on Unix as well.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85019
13f79535-47bb-0310-9956-
ffa450edef68
else if (rv != APR_SUCCESS) {
if (r->connection->aborted)
break;
- else if (rv == EAGAIN)
+ else if (ap_canonical_error(rv) == APR_EAGAIN)
continue;
else {
ap_log_rerror(APLOG_MARK, APLOG_INFO, rv, r,
char pipe_read_char;
ret = read(listenfds[0].fd, &pipe_read_char, 1);
- if (ret == -1 && errno == EAGAIN) {
+ if (ret == -1 && (errno == EAGAIN || errno == EWOULDBLOCK)) {
/* It lost the lottery. It must continue to suffer
* through a life of servitude. */
}
int n=1;
ret = ap_recv(listensocks[0], &pipe_read_char, &n);
- if (ret == APR_EAGAIN) {
+ if (ap_canonical_error(ret) == APR_EAGAIN) {
/* It lost the lottery. It must continue to suffer
* through a life of servitude. */
}