mirror of
https://github.com/apache/httpd.git
synced 2025-08-08 15:02:10 +03:00
Fix some problems on systems where EAGAIN != EWOULDBLOCK (e.g., OS/390).
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
This commit is contained in:
@@ -2272,7 +2272,7 @@ API_EXPORT(size_t) ap_send_mmap(ap_mmap_t *mm, request_rec *r, size_t offset,
|
|||||||
else if (rv != APR_SUCCESS) {
|
else if (rv != APR_SUCCESS) {
|
||||||
if (r->connection->aborted)
|
if (r->connection->aborted)
|
||||||
break;
|
break;
|
||||||
else if (rv == EAGAIN)
|
else if (ap_canonical_error(rv) == APR_EAGAIN)
|
||||||
continue;
|
continue;
|
||||||
else {
|
else {
|
||||||
ap_log_rerror(APLOG_MARK, APLOG_INFO, rv, r,
|
ap_log_rerror(APLOG_MARK, APLOG_INFO, rv, r,
|
||||||
|
@@ -681,7 +681,7 @@ static void check_pipe_of_death(void)
|
|||||||
char pipe_read_char;
|
char pipe_read_char;
|
||||||
|
|
||||||
ret = read(listenfds[0].fd, &pipe_read_char, 1);
|
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
|
/* It lost the lottery. It must continue to suffer
|
||||||
* through a life of servitude. */
|
* through a life of servitude. */
|
||||||
}
|
}
|
||||||
|
@@ -637,7 +637,7 @@ static void check_pipe_of_death(void)
|
|||||||
int n=1;
|
int n=1;
|
||||||
|
|
||||||
ret = ap_recv(listensocks[0], &pipe_read_char, &n);
|
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
|
/* It lost the lottery. It must continue to suffer
|
||||||
* through a life of servitude. */
|
* through a life of servitude. */
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user