From c668f81107d3a5580bf0457a397cbe650f74e8a0 Mon Sep 17 00:00:00 2001 From: Jim Ingham Date: Sat, 21 Jan 2012 02:03:41 +0000 Subject: [PATCH] Our Read functions were taking a timeout of UINT32_MAX to mean wait forever, but then we didn't implement that in setting the socket option. llvm-svn: 148616 --- lldb/source/Core/ConnectionFileDescriptor.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/lldb/source/Core/ConnectionFileDescriptor.cpp b/lldb/source/Core/ConnectionFileDescriptor.cpp index fec860a7583f..1a455f1b5f27 100644 --- a/lldb/source/Core/ConnectionFileDescriptor.cpp +++ b/lldb/source/Core/ConnectionFileDescriptor.cpp @@ -983,8 +983,16 @@ ConnectionFileDescriptor::SetSocketReceiveTimeout (uint32_t timeout_usec) //printf ("ConnectionFileDescriptor::SetSocketReceiveTimeout (timeout_usec = %u)\n", timeout_usec); struct timeval timeout; - timeout.tv_sec = timeout_usec / TimeValue::MicroSecPerSec; - timeout.tv_usec = timeout_usec % TimeValue::MicroSecPerSec; + if (timeout_usec == UINT32_MAX) + { + timeout.tv_sec = 0; + timeout.tv_usec = 0; + } + else + { + timeout.tv_sec = timeout_usec / TimeValue::MicroSecPerSec; + timeout.tv_usec = timeout_usec % TimeValue::MicroSecPerSec; + } if (::setsockopt (m_fd_recv, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(timeout)) == 0) { m_socket_timeout_usec = timeout_usec;