Commit dd478cbd authored by Jeff Trawick's avatar Jeff Trawick
Browse files

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
parent b217bfa6
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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,
+1 −1
Original line number Diff line number Diff line
@@ -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. */
        }
+1 −1
Original line number Diff line number Diff line
@@ -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. */
        }