Author: mturk
Date: Thu Aug 26 12:21:52 2010
New Revision: 989639
URL: http://svn.apache.org/viewvc?rev=989639&view=rev
Log:
Don't consume too much CPU while reading data
Modified:
apr/apr/trunk/file_io/win32/pipe.c
Modified: apr/apr/trunk/file_io/win32/pipe.c
URL: http://svn.apache.org/viewvc/apr/apr/trunk/file_io/win32/pipe.c?rev=989639&r1=989638&r2=989639&view=diff
==============================================================================
--- apr/apr/trunk/file_io/win32/pipe.c (original)
+++ apr/apr/trunk/file_io/win32/pipe.c Thu Aug 26 12:21:52 2010
@@ -295,6 +295,7 @@ static apr_status_t create_socket_pipe(S
}
for (;;) {
int ns;
+ int nc = 0;
/* Listening socket is nonblocking by now.
* The accept should create the socket
* immediatelly because we are connected already.
@@ -322,6 +323,8 @@ static apr_status_t create_socket_pipe(S
/* Verify the connection by reading the send identification.
*/
do {
+ if (nc++)
+ Sleep(1);
nrd = recv(*rd, (char *)iid, sizeof(iid), 0);
rv = nrd == SOCKET_ERROR ? apr_get_netos_error() : APR_SUCCESS;
} while (APR_STATUS_IS_EAGAIN(rv));
|