1
0
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:
Jeff Trawick
2000-04-23 13:22:08 +00:00
parent dd4bfd87a2
commit 3548f16478
3 changed files with 3 additions and 3 deletions

View File

@@ -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,

View File

@@ -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. */
} }

View File

@@ -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. */
} }