[Lldb-commits] [lldb] r287922 - Introduce Chrono to the Connection class. NFCI.

Pavel Labath via lldb-commits lldb-commits at lists.llvm.org
Fri Nov 25 04:22:33 PST 2016


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]);
   }




More information about the lldb-commits mailing list