You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by tr...@locus.apache.org on 2000/04/10 14:16:41 UTC

cvs commit: apache-2.0/src/lib/apr/network_io/unix sendrecv.c

trawick     00/04/10 05:16:41

  Modified:    src/lib/apr/file_io/unix readwrite.c
               src/lib/apr/network_io/unix sendrecv.c
  Log:
  Check for EWOULDBLOCK in addition to EAGAIN inside APR.
  
  Revision  Changes    Path
  1.36      +6 -2      apache-2.0/src/lib/apr/file_io/unix/readwrite.c
  
  Index: readwrite.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/lib/apr/file_io/unix/readwrite.c,v
  retrieving revision 1.35
  retrieving revision 1.36
  diff -u -r1.35 -r1.36
  --- readwrite.c	2000/04/07 01:41:40	1.35
  +++ readwrite.c	2000/04/10 12:16:40	1.36
  @@ -117,7 +117,9 @@
           rv = read(thefile->filedes, buf, *nbytes);
       } while (rv == -1 && errno == EINTR);
   
  -    if (rv == -1 && errno == EAGAIN && thefile->timeout != 0) {
  +    if (rv == -1 && 
  +        (errno == EAGAIN || errno == EWOULDBLOCK) && 
  +        thefile->timeout != 0) {
           ap_status_t arv = wait_for_io_or_timeout(thefile, 1);
           if (arv != APR_SUCCESS) {
               *nbytes = 0;
  @@ -170,7 +172,9 @@
           rv = write(thefile->filedes, buf, *nbytes);
       } while (rv == -1 && errno == EINTR);
   
  -    if (rv == -1 && errno == EAGAIN && thefile->timeout != 0) {
  +    if (rv == -1 && 
  +        (errno == EAGAIN || errno == EWOULDBLOCK) && 
  +        thefile->timeout != 0) {
           ap_status_t arv = wait_for_io_or_timeout(thefile, 0);
           if (arv != APR_SUCCESS) {
               *nbytes = 0;
  
  
  
  1.19      +18 -6     apache-2.0/src/lib/apr/network_io/unix/sendrecv.c
  
  Index: sendrecv.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/lib/apr/network_io/unix/sendrecv.c,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- sendrecv.c	2000/04/03 19:45:10	1.18
  +++ sendrecv.c	2000/04/10 12:16:41	1.19
  @@ -112,7 +112,9 @@
           rv = write(sock->socketdes, buf, (*len));
       } while (rv == -1 && errno == EINTR);
   
  -    if (rv == -1 && errno == EAGAIN && sock->timeout != 0) {
  +    if (rv == -1 && 
  +        (errno == EAGAIN || errno == EWOULDBLOCK) && 
  +        sock->timeout != 0) {
   	ap_status_t arv = wait_for_io_or_timeout(sock, 0);
   	if (arv != APR_SUCCESS) {
   	    *len = 0;
  @@ -150,7 +152,9 @@
           rv = read(sock->socketdes, buf, (*len));
       } while (rv == -1 && errno == EINTR);
   
  -    if (rv == -1 && errno == EAGAIN && sock->timeout != 0) {
  +    if (rv == -1 && 
  +        (errno == EAGAIN || errno == EWOULDBLOCK) && 
  +        sock->timeout != 0) {
   	ap_status_t arv = wait_for_io_or_timeout(sock, 1);
   	if (arv != APR_SUCCESS) {
   	    *len = 0;
  @@ -191,7 +195,9 @@
           rv = writev(sock->socketdes, vec, nvec);
       } while (rv == -1 && errno == EINTR);
   
  -    if (rv == -1 && errno == EAGAIN && sock->timeout != 0) {
  +    if (rv == -1 && 
  +        (errno == EAGAIN || errno == EWOULDBLOCK) && 
  +        sock->timeout != 0) {
   	ap_status_t arv = wait_for_io_or_timeout(sock, 0);
   	if (arv != APR_SUCCESS) {
   	    *len = 0;
  @@ -270,7 +276,9 @@
               );
       } while (rv == -1 && errno == EINTR);
   
  -    if (rv == -1 && errno == EAGAIN && sock->timeout != 0) {
  +    if (rv == -1 && 
  +        (errno == EAGAIN || errno == EWOULDBLOCK) && 
  +        sock->timeout != 0) {
   	arv = wait_for_io_or_timeout(sock, 0);
   	if (arv != APR_SUCCESS) {
   	    *len = 0;
  @@ -347,7 +355,9 @@
               );
       } while (rv == -1 && errno == EINTR);
   
  -    if (rv == -1 && errno == EAGAIN && sock->timeout != 0) {
  +    if (rv == -1 && 
  +        (errno == EAGAIN || errno == EWOULDBLOCK) && 
  +        sock->timeout != 0) {
   	ap_status_t arv = wait_for_io_or_timeout(sock, 0);
   	if (arv != APR_SUCCESS) {
   	    *len = 0;
  @@ -434,7 +444,9 @@
               );
       } while (rv == -1 && errno == EINTR);
   
  -    if (rv == -1 && errno == EAGAIN && sock->timeout != 0) {
  +    if (rv == -1 && 
  +        (errno == EAGAIN || errno == EWOULDBLOCK) && 
  +        sock->timeout != 0) {
           struct timeval *tv;
           fd_set fdset;
           int srv;