diff --git a/Common/GmshSocket.h b/Common/GmshSocket.h index 32442f0f9fd6ae97e3aad931c853a769f73f7288..66f98bcf0dd663ffde5edb19751f9cd83593c623 100644 --- a/Common/GmshSocket.h +++ b/Common/GmshSocket.h @@ -21,7 +21,7 @@ // WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS // ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE // OF THIS SOFTWARE. -// +// // Please report all bugs and problems to <gmsh@geuz.org>. #ifndef _GMSH_SOCKET_H_ @@ -61,7 +61,7 @@ class GmshSocket{ // that 65535: if we receive a type > 65535 we assume that we // receive data from a machine with a different byte ordering, and // we swap the bytes in the payload) - enum MessageType{ + enum MessageType{ GMSH_START = 1, GMSH_STOP = 2, GMSH_INFO = 10, @@ -87,16 +87,18 @@ class GmshSocket{ // the socket name std::string _sockname; // send some data over the socket - void _SendData(const void *buffer, int bytes) + int _SendData(const void *buffer, int bytes) { const char *buf = (const char *)buffer; int sofar = 0; int remaining = bytes; do { - int len = send(_sock, buf + sofar, remaining, 0); + int len = send(_sock, buf + sofar, remaining, 0); + if(len < 0) return -1; // error sofar += len; remaining -= len; } while(remaining > 0); + return bytes; } // receive some data over the socket int _ReceiveData(void *buffer, int bytes) @@ -195,7 +197,7 @@ class GmshSocket{ *swap = 0; if(_ReceiveData(type, sizeof(int))){ if(*type < 0) return 0; - if(*type > 65535){ + if(*type > 65535){ // the data comes from a machine with different endianness and // we must swap the bytes *swap = 1; @@ -405,7 +407,7 @@ class GmshServer : public GmshSocket{ CloseSocket(tmpsock); throw "Socket listen failed"; } - + // wait until we get data int ret = NonBlockingWait(tmpsock, 0.5, timeout); if(ret){ @@ -447,6 +449,6 @@ class GmshServer : public GmshSocket{ CloseSocket(_sock); return 0; } -}; +}; #endif diff --git a/Common/onelab.h b/Common/onelab.h index 47886580edf0d5fba818649591a26e3e6e40a959..7dc691fd5b936b6aeca9d5de3b25f367bf90fcbf 100644 --- a/Common/onelab.h +++ b/Common/onelab.h @@ -743,8 +743,8 @@ namespace onelab{ _gmshClient->SendMessage(GmshSocket::GMSH_PARAM_QUERY_ALL, msg.size(), &msg[0]); while(1){ - // stop if we have no communications for 10 secs - int ret = _gmshClient->Select(10, 0); + // stop if we have no communications for 5 minutes + int ret = _gmshClient->Select(500, 0); if(!ret){ _gmshClient->Info("Timout: aborting remote get"); return false;