diff options
author | schmidt <douglascraigschmidt@users.noreply.github.com> | 2000-09-11 13:34:51 +0000 |
---|---|---|
committer | schmidt <douglascraigschmidt@users.noreply.github.com> | 2000-09-11 13:34:51 +0000 |
commit | d65fc11b5c5c4cfcc453e8218ab7eadbe1cb5f65 (patch) | |
tree | 0c75022a67fc16080b3fea0d847a2204213430c0 /ace/Service_Manager.cpp | |
parent | e1b1b38e6b3f8a07445a998dabcab161723b8ff1 (diff) | |
download | ATCD-d65fc11b5c5c4cfcc453e8218ab7eadbe1cb5f65.tar.gz |
ChangeLogTag:Mon Sep 11 08:10:21 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
Diffstat (limited to 'ace/Service_Manager.cpp')
-rw-r--r-- | ace/Service_Manager.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/ace/Service_Manager.cpp b/ace/Service_Manager.cpp index 40425194e9c..f54e8162d00 100644 --- a/ace/Service_Manager.cpp +++ b/ace/Service_Manager.cpp @@ -266,7 +266,16 @@ ACE_Service_Manager::handle_input (ACE_HANDLE) // Read service request from client. - switch (client_stream_.recv (request, sizeof request)) + ssize_t result; + + // Keep looping until we actually get the request. Note that Win32 + // sets the socket into non-blocking mode, so we may need to loop if + // the system is heavily loaded. + do + result = client_stream_.recv (request, sizeof request); + while (result == -1 && errno == EWOULDBLOCK) + + switch (result) { case -1: if (this->debug_) |