]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
Fix some problems on systems where EAGAIN != EWOULDBLOCK (e.g., OS/390).
authorJeff Trawick <trawick@apache.org>
Sun, 23 Apr 2000 13:22:08 +0000 (13:22 +0000)
committerJeff Trawick <trawick@apache.org>
Sun, 23 Apr 2000 13:22:08 +0000 (13:22 +0000)
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

modules/http/http_protocol.c
server/mpm/dexter/dexter.c
server/mpm/mpmt_pthread/mpmt_pthread.c

index 69003d92e8b82cab34386d545c10a57bca8ca627..77aecaf2c05585d76dd31bf299979361dd2dde99 100644 (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) {
                 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,
index f0cf8ae933b5ede53f0371750fd559e2c47d8250..c3e6362e82be9603da13232a5ac987e6b02c9b4d 100644 (file)
@@ -681,7 +681,7 @@ static void check_pipe_of_death(void)
         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. */
         }
index ee0025c6a110801f2b6a7529dd01a944a0232166..6c1c92b1bdab7a98823cc696650a63693e42d3be 100644 (file)
@@ -637,7 +637,7 @@ static void check_pipe_of_death(void)
        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. */
         }