Author: labath Date: Fri Nov 25 06:22:32 2016 New Revision: 287922 URL: http://llvm.org/viewvc/llvm-project?rev=287922&view=rev Log: Introduce Chrono to the Connection class. NFCI.
Modified: lldb/trunk/include/lldb/Core/Connection.h lldb/trunk/include/lldb/Core/ConnectionSharedMemory.h lldb/trunk/include/lldb/Host/posix/ConnectionFileDescriptorPosix.h lldb/trunk/source/Core/Communication.cpp lldb/trunk/source/Core/ConnectionSharedMemory.cpp lldb/trunk/source/Host/common/Editline.cpp lldb/trunk/source/Host/posix/ConnectionFileDescriptorPosix.cpp lldb/trunk/source/Plugins/Platform/Android/AdbClient.cpp Modified: lldb/trunk/include/lldb/Core/Connection.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Core/Connection.h?rev=287922&r1=287921&r2=287922&view=diff ============================================================================== --- lldb/trunk/include/lldb/Core/Connection.h (original) +++ lldb/trunk/include/lldb/Core/Connection.h Fri Nov 25 06:22:32 2016 @@ -10,13 +10,15 @@ #ifndef liblldb_Connection_h_ #define liblldb_Connection_h_ -// C Includes -// C++ Includes -#include <string> // Other libraries and framework includes // Project includes +#include "lldb/Utility/Timeout.h" #include "lldb/lldb-private.h" +// C Includes +// C++ Includes +#include <string> + namespace lldb_private { //---------------------------------------------------------------------- @@ -107,7 +109,7 @@ public: /// The number of bytes to attempt to read, and also the max /// number of bytes that can be placed into \a dst. /// - /// @param[in] timeout_usec + /// @param[in] timeout /// The number of microseconds to wait for the data. /// /// @param[out] status @@ -124,7 +126,8 @@ public: /// /// @see size_t Communication::Read (void *, size_t, uint32_t); //------------------------------------------------------------------ - virtual size_t Read(void *dst, size_t dst_len, uint32_t timeout_usec, + virtual size_t Read(void *dst, size_t dst_len, + const Timeout<std::micro> &timeout, lldb::ConnectionStatus &status, Error *error_ptr) = 0; //------------------------------------------------------------------ Modified: lldb/trunk/include/lldb/Core/ConnectionSharedMemory.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Core/ConnectionSharedMemory.h?rev=287922&r1=287921&r2=287922&view=diff ============================================================================== --- lldb/trunk/include/lldb/Core/ConnectionSharedMemory.h (original) +++ lldb/trunk/include/lldb/Core/ConnectionSharedMemory.h Fri Nov 25 06:22:32 2016 @@ -36,7 +36,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/include/lldb/Host/posix/ConnectionFileDescriptorPosix.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Host/posix/ConnectionFileDescriptorPosix.h?rev=287922&r1=287921&r2=287922&view=diff ============================================================================== --- lldb/trunk/include/lldb/Host/posix/ConnectionFileDescriptorPosix.h (original) +++ lldb/trunk/include/lldb/Host/posix/ConnectionFileDescriptorPosix.h Fri Nov 25 06:22:32 2016 @@ -57,7 +57,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, @@ -65,7 +65,7 @@ public: std::string GetURI() override; - lldb::ConnectionStatus BytesAvailable(uint32_t timeout_usec, + lldb::ConnectionStatus BytesAvailable(const Timeout<std::micro> &timeout, Error *error_ptr); bool InterruptRead() override; Modified: lldb/trunk/source/Core/Communication.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/Communication.cpp?rev=287922&r1=287921&r2=287922&view=diff ============================================================================== --- lldb/trunk/source/Core/Communication.cpp (original) +++ lldb/trunk/source/Core/Communication.cpp Fri Nov 25 06:22:32 2016 @@ -278,11 +278,8 @@ size_t Communication::ReadFromConnection ConnectionStatus &status, Error *error_ptr) { lldb::ConnectionSP connection_sp(m_connection_sp); - if (connection_sp) { - return connection_sp->Read(dst, dst_len, - timeout ? timeout->count() : UINT32_MAX, status, - error_ptr); - } + if (connection_sp) + return connection_sp->Read(dst, dst_len, timeout, status, error_ptr); if (error_ptr) error_ptr->SetErrorString("Invalid connection."); Modified: lldb/trunk/source/Core/ConnectionSharedMemory.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/ConnectionSharedMemory.cpp?rev=287922&r1=287921&r2=287922&view=diff ============================================================================== --- lldb/trunk/source/Core/ConnectionSharedMemory.cpp (original) +++ lldb/trunk/source/Core/ConnectionSharedMemory.cpp Fri Nov 25 06:22:32 2016 @@ -79,7 +79,7 @@ ConnectionStatus ConnectionSharedMemory: } size_t ConnectionSharedMemory::Read(void *dst, size_t dst_len, - uint32_t timeout_usec, + const Timeout<std::micro> &timeout, ConnectionStatus &status, Error *error_ptr) { status = eConnectionStatusSuccess; Modified: lldb/trunk/source/Host/common/Editline.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/common/Editline.cpp?rev=287922&r1=287921&r2=287922&view=diff ============================================================================== --- lldb/trunk/source/Host/common/Editline.cpp (original) +++ lldb/trunk/source/Host/common/Editline.cpp Fri Nov 25 06:22:32 2016 @@ -516,11 +516,11 @@ int Editline::GetCharacter(EditLineCharT // mutex again and // check if we were interrupted. m_output_mutex.unlock(); - int read_count = m_input_connection.Read(&ch, 1, UINT32_MAX, status, NULL); + int read_count = m_input_connection.Read(&ch, 1, llvm::None, status, NULL); m_output_mutex.lock(); if (m_editor_status == EditorStatus::Interrupted) { while (read_count > 0 && status == lldb::eConnectionStatusSuccess) - read_count = m_input_connection.Read(&ch, 1, UINT32_MAX, status, NULL); + read_count = m_input_connection.Read(&ch, 1, llvm::None, status, NULL); lldbassert(status == lldb::eConnectionStatusInterrupted); return 0; } Modified: lldb/trunk/source/Host/posix/ConnectionFileDescriptorPosix.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/posix/ConnectionFileDescriptorPosix.cpp?rev=287922&r1=287921&r2=287922&view=diff ============================================================================== --- lldb/trunk/source/Host/posix/ConnectionFileDescriptorPosix.cpp (original) +++ lldb/trunk/source/Host/posix/ConnectionFileDescriptorPosix.cpp Fri Nov 25 06:22:32 2016 @@ -369,7 +369,7 @@ ConnectionStatus ConnectionFileDescripto } size_t ConnectionFileDescriptor::Read(void *dst, size_t dst_len, - uint32_t timeout_usec, + const Timeout<std::micro> &timeout, ConnectionStatus &status, Error *error_ptr) { Log *log(lldb_private::GetLogIfAnyCategoriesSet(LIBLLDB_LOG_CONNECTION)); @@ -392,7 +392,7 @@ size_t ConnectionFileDescriptor::Read(vo return 0; } - status = BytesAvailable(timeout_usec, error_ptr); + status = BytesAvailable(timeout, error_ptr); if (status != eConnectionStatusSuccess) return 0; @@ -553,8 +553,9 @@ std::string ConnectionFileDescriptor::Ge // be used or a new version of ConnectionFileDescriptor::BytesAvailable() // should be written for the system that is running into the limitations. -ConnectionStatus ConnectionFileDescriptor::BytesAvailable(uint32_t timeout_usec, - Error *error_ptr) { +ConnectionStatus +ConnectionFileDescriptor::BytesAvailable(const Timeout<std::micro> &timeout, + Error *error_ptr) { // Don't need to take the mutex here separately since we are only called from // Read. If we // ever get used more generally we will need to lock here as well. @@ -562,8 +563,8 @@ ConnectionStatus ConnectionFileDescripto Log *log(lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_CONNECTION)); if (log) log->Printf( - "%p ConnectionFileDescriptor::BytesAvailable (timeout_usec = %u)", - static_cast<void *>(this), timeout_usec); + "%p ConnectionFileDescriptor::BytesAvailable (timeout_usec = %lu)", + static_cast<void *>(this), long(timeout ? timeout->count() : -1)); // Make a copy of the file descriptors to make sure we don't // have another thread change these values out from under us @@ -573,8 +574,8 @@ ConnectionStatus ConnectionFileDescripto if (handle != IOObject::kInvalidHandleValue) { SelectHelper select_helper; - if (timeout_usec != UINT32_MAX) - select_helper.SetTimeout(std::chrono::microseconds(timeout_usec)); + if (timeout) + select_helper.SetTimeout(*timeout); select_helper.FDSetRead(handle); #if defined(_MSC_VER) Modified: lldb/trunk/source/Plugins/Platform/Android/AdbClient.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Platform/Android/AdbClient.cpp?rev=287922&r1=287921&r2=287922&view=diff ============================================================================== --- lldb/trunk/source/Plugins/Platform/Android/AdbClient.cpp (original) +++ lldb/trunk/source/Plugins/Platform/Android/AdbClient.cpp Fri Nov 25 06:22:32 2016 @@ -74,10 +74,9 @@ Error ReadAllBytes(Connection &conn, voi const auto deadline = now + kReadTimeout; size_t total_read_bytes = 0; while (total_read_bytes < size && now < deadline) { - uint32_t timeout_usec = duration_cast<microseconds>(deadline - now).count(); auto read_bytes = conn.Read(read_buffer + total_read_bytes, size - total_read_bytes, - timeout_usec, status, &error); + duration_cast<microseconds>(deadline - now), status, &error); if (error.Fail()) return error; total_read_bytes += read_bytes; @@ -276,9 +275,9 @@ Error AdbClient::ReadMessageStream(std:: if (elapsed >= timeout) return Error("Timed out"); - size_t n = m_conn->Read( - buffer, sizeof(buffer), - duration_cast<microseconds>(timeout - elapsed).count(), status, &error); + size_t n = m_conn->Read(buffer, sizeof(buffer), + duration_cast<microseconds>(timeout - elapsed), + status, &error); if (n > 0) message.insert(message.end(), &buffer[0], &buffer[n]); } _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits