[Lldb-commits] [PATCH] D25391: Remove usages of TimeValue from gdb-remote process plugin

Pavel Labath via lldb-commits lldb-commits at lists.llvm.org
Sat Oct 8 09:40:33 PDT 2016


labath added inline comments.


================
Comment at: source/Plugins/Process/gdb-remote/GDBRemoteClientBase.cpp:192
+    packet_result = ReadPacket(
+        response, std::chrono::duration_cast<std::chrono::microseconds>(
+                      GetPacketTimeout())
----------------
zturner wrote:
> `using namespace std` is generally frowned upon, but I wonder if we could be more lenient about `using namespace std::chrono`?  Would make a lot of those code easier on the eyes.
I started using it in some tighter scopes, which are chrono-heavy. I'd be fine with the using directive at file level though.


================
Comment at: source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp:266-267
+      packet,
+      std::chrono::duration_cast<std::chrono::microseconds>(GetPacketTimeout())
+          .count(),
+      false);
----------------
zturner wrote:
> Same here.  You should just be able to pass the `duration` straight through, and update `ReadPacket` to do the cast.
These should go away, when everything is updated to use chrono, but the hierarchy there is multiple levels deep, so I cannot do it in a single pass (ReadPacket just calls `WaitForPacketWithTimeoutMicroSecondsNoLock`, which would also need to be updated... the real cast should only happen somewhere in the Connection classes, once you actually start issuing system calls).


================
Comment at: source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h:86
+    ScopedTimeout(GDBRemoteCommunication &gdb_comm,
+                  std::chrono::seconds timeout);
     ~ScopedTimeout();
----------------
zturner wrote:
> To make this more generic, this could be a `std::chrono::duration<int>`.  If for any reason someone wanted `3.2` seconds, they could then specify it.
I don't think that works the way you think it does. If you don't specify the ratio template argument, it will just get defaulted to `std::ratio<1>`, meaning seconds.  To have it generic you'd have to make this a template function, with the ratio as the parameter, but at that point you might as well just choose a type with the highest precision you are willing to accept. So, I could make this take a milli or micro second durations, but I don't think that's necessary for a packet timeout.


https://reviews.llvm.org/D25391





More information about the lldb-commits mailing list