Author: labath Date: Fri Nov 25 08:43:37 2016 New Revision: 287927 URL: http://llvm.org/viewvc/llvm-project?rev=287927&view=rev Log: Fix builds Windows and OSX builds after Connection refactor in r287922
Switch various bits of platform-specific code to chrono that I did not notice when doing a linux build. This exposed a bug that ConnectionGenericFileWindows did not handle the magic UINT32_MAX timeout value (instead it waited for about an hour, which is close enough I guess). Fix that as well. Modified: lldb/trunk/include/lldb/Host/windows/ConnectionGenericFileWindows.h lldb/trunk/source/Host/macosx/Host.mm lldb/trunk/source/Host/windows/ConnectionGenericFileWindows.cpp lldb/trunk/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp Modified: lldb/trunk/include/lldb/Host/windows/ConnectionGenericFileWindows.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Host/windows/ConnectionGenericFileWindows.h?rev=287927&r1=287926&r2=287927&view=diff ============================================================================== --- lldb/trunk/include/lldb/Host/windows/ConnectionGenericFileWindows.h (original) +++ lldb/trunk/include/lldb/Host/windows/ConnectionGenericFileWindows.h Fri Nov 25 08:43:37 2016 @@ -32,7 +32,7 @@ public: lldb::ConnectionStatus Disconnect(Error *error_ptr) override; - size_t Read(void *dst, size_t dst_len, uint32_t timeout_usec, + size_t Read(void *dst, size_t dst_len, const Timeout<std::micro> &timeout, lldb::ConnectionStatus &status, Error *error_ptr) override; size_t Write(const void *src, size_t src_len, lldb::ConnectionStatus &status, Modified: lldb/trunk/source/Host/macosx/Host.mm URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/macosx/Host.mm?rev=287927&r1=287926&r2=287927&view=diff ============================================================================== --- lldb/trunk/source/Host/macosx/Host.mm (original) +++ lldb/trunk/source/Host/macosx/Host.mm Fri Nov 25 08:43:37 2016 @@ -144,8 +144,8 @@ static void *AcceptPIDFromInferior(void char pid_str[256]; ::memset(pid_str, 0, sizeof(pid_str)); ConnectionStatus status; - const size_t pid_str_len = - file_conn.Read(pid_str, sizeof(pid_str), 0, status, NULL); + const size_t pid_str_len = file_conn.Read( + pid_str, sizeof(pid_str), std::chrono::seconds(0), status, NULL); if (pid_str_len > 0) { int pid = atoi(pid_str); return (void *)(intptr_t)pid; Modified: lldb/trunk/source/Host/windows/ConnectionGenericFileWindows.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/windows/ConnectionGenericFileWindows.cpp?rev=287927&r1=287926&r2=287927&view=diff ============================================================================== --- lldb/trunk/source/Host/windows/ConnectionGenericFileWindows.cpp (original) +++ lldb/trunk/source/Host/windows/ConnectionGenericFileWindows.cpp Fri Nov 25 08:43:37 2016 @@ -168,7 +168,7 @@ lldb::ConnectionStatus ConnectionGeneric } size_t ConnectionGenericFile::Read(void *dst, size_t dst_len, - uint32_t timeout_usec, + const Timeout<std::micro> &timeout, lldb::ConnectionStatus &status, Error *error_ptr) { ReturnInfo return_info; @@ -191,7 +191,11 @@ size_t ConnectionGenericFile::Read(void // The expected return path. The operation is pending. Wait for the // operation to complete // or be interrupted. - DWORD milliseconds = timeout_usec/1000; + DWORD milliseconds = + timeout + ? std::chrono::duration_cast<std::chrono::milliseconds>(*timeout) + .count() + : INFINITE; DWORD wait_result = ::WaitForMultipleObjects(llvm::array_lengthof(m_event_handles), m_event_handles, FALSE, milliseconds); Modified: lldb/trunk/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp?rev=287927&r1=287926&r2=287927&view=diff ============================================================================== --- lldb/trunk/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp (original) +++ lldb/trunk/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp Fri Nov 25 08:43:37 2016 @@ -210,8 +210,11 @@ size_t CommunicationKDP::WaitForPacketWi bool timed_out = false; while (IsConnected() && !timed_out) { lldb::ConnectionStatus status = eConnectionStatusNoConnection; - size_t bytes_read = - Read(buffer, sizeof(buffer), timeout_usec, status, &error); + size_t bytes_read = Read(buffer, sizeof(buffer), + timeout_usec == UINT32_MAX + ? Timeout<std::micro>(llvm::None) + : std::chrono::microseconds(timeout_usec), + status, &error); if (log) log->Printf("%s: Read (buffer, (sizeof(buffer), timeout_usec = 0x%x, " _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits