[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    icecream
From:       Frank Osterfeld <frank.osterfeld () kdemail ! net>
Date:       2009-04-08 20:46:45
Message-ID: 1239223605.045461.18563.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 951280 by osterfeld:

also check for EAGAIN (needed on OS X)

 M  +1 -1      client/local.cpp  
 M  +1 -1      daemon/main.cpp  
 M  +1 -1      daemon/serve.cpp  
 M  +2 -2      daemon/workit.cpp  


--- trunk/icecream/client/local.cpp #951279:951280
@@ -244,7 +244,7 @@
                 }
                 if (r == 0)
                     break;
-                if ( r < 0 && errno != EINTR)
+                if ( r < 0 && errno != EINTR && errno != EAGAIN )
                     break;
             }
             colorify_output(s_ccout);
--- trunk/icecream/daemon/main.cpp #951279:951280
@@ -1159,7 +1159,7 @@
         off_t off = 0;
         while ( len ) {
             ssize_t bytes = write( client->pipe_to_child, fcmsg->buffer + off, len );
-            if ( bytes < 0 && errno == EINTR )
+            if ( bytes < 0 && ( errno == EINTR || errno == EAGAIN ) )
                 continue;
 
             if ( bytes == -1 ) {
--- trunk/icecream/daemon/serve.cpp #951279:951280
@@ -214,7 +214,7 @@
                 ssize_t bytes = read(obj_fd, buffer, sizeof(buffer));
                 if ( bytes < 0 )
                 {
-                    if ( errno == EINTR )
+                    if ( errno == EINTR || errno == EAGAIN )
                         continue;
                     throw myexception( EXIT_DISTCC_FAILED );
                 }
--- trunk/icecream/daemon/workit.cpp #951279:951280
@@ -316,7 +316,7 @@
             off_t off = 0;
             while ( len ) {
                 ssize_t bytes = write( sock_in[1], fcmsg->buffer + off, len );
-                if ( bytes < 0 && errno == EINTR )
+                if ( bytes < 0 && ( errno == EINTR || errno == EAGAIN ) )
                     continue;
 
                 write(job_in_fd, fcmsg->buffer + off, bytes);
@@ -370,7 +370,7 @@
         {
             char resultByte;
             ssize_t n = ::read(main_sock[0], &resultByte, 1);
-            if (n == -1 && errno == EINTR)
+            if (n == -1 && ( errno == EINTR || errno == EAGAIN ) )
                 continue; // Ignore
 
             if (n == 1)
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic