[GDBRemote] Remove code that flushes GDB remote packets
authorJonas Devlieghere <jonas@devlieghere.com>
Fri, 28 Jun 2019 18:14:27 +0000 (18:14 +0000)
committerJonas Devlieghere <jonas@devlieghere.com>
Fri, 28 Jun 2019 18:14:27 +0000 (18:14 +0000)
The arbitrary timeout when flushing GDB remote packets caused
non-determinism and flakiness between test runs. I suspect it is what's
causing the flakiness of the reproducer tests on GreenDragon, and want
to see if removing it causes that to go away.

This change was originally introduced in r197579 to discard a
`$T02thread:01;#4` that QEMU was sending. If anybody knows how to test
that this continues working after removing this code, I'd love to hear
it.

llvm-svn: 364669

lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp

index 9797184..0d6b45a 100644 (file)
@@ -115,13 +115,6 @@ bool GDBRemoteCommunicationClient::HandshakeWithServer(Status *error_ptr) {
   // Start the read thread after we send the handshake ack since if we fail to
   // send the handshake ack, there is no reason to continue...
   if (SendAck()) {
-    // Wait for any responses that might have been queued up in the remote
-    // GDB server and flush them all
-    StringExtractorGDBRemote response;
-    PacketResult packet_result = PacketResult::Success;
-    while (packet_result == PacketResult::Success)
-      packet_result = ReadPacket(response, milliseconds(10), false);
-
     // The return value from QueryNoAckModeSupported() is true if the packet
     // was sent and _any_ response (including UNIMPLEMENTED) was received), or
     // false if no response was received. This quickly tells us if we have a