diff options
author | Jan Kratochvil <jan.kratochvil@redhat.com> | 2019-07-23 20:45:03 +0000 |
---|---|---|
committer | Jan Kratochvil <jan.kratochvil@redhat.com> | 2019-07-23 20:45:03 +0000 |
commit | 8693f8f9c18282aea953216634db396db7b19220 (patch) | |
tree | fc7cba07031981cb1ad70de70dc1a2fa5f74be2c /lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py | |
parent | c5b5cc4575452463360a16c80e1fce25e7e06d31 (diff) | |
download | bcm5719-llvm-8693f8f9c18282aea953216634db396db7b19220.tar.gz bcm5719-llvm-8693f8f9c18282aea953216634db396db7b19220.zip |
[lldb] Fix occasional hangs of VSCode testcases
On slower machines the vscode testcases were sometimes hanging:
1910 ? Sl 0:00 | \_ /usr/bin/python .../llvm/tools/lldb/test/dotest.py ... -p TestVSCode_setBreakpoints.py
2649 ? Sl 0:00 | \_ .../build/bin/lldb-vscode
2690 ? S 0:00 | \_ .../build/bin/lldb-server gdbserver --fd=9 --native-regs --setsid
2708 ? t 0:00 | \_ .../build/lldb-test-build.noindex/tools/lldb-vscode/breakpoint/TestVSCode_setBreakpoints.test_functionality/a.out
A reproducer of the racy bug for send_recv():
# self.send_packet(command)
#+ import time
#+ time.sleep(1)
# done = False
I guess `request_continue` was probably originally intended to be synchronous
but then it isn't and this code has been leftover there.
Differential revision: https://reviews.llvm.org/D65163
llvm-svn: 366850
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py')
-rw-r--r-- | lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py index 74ee4a6c44c..adb8ad50bff 100644 --- a/lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py +++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py @@ -498,13 +498,7 @@ class DebugCommunication(object): 'arguments': args_dict } response = self.send_recv(command_dict) - recv_packets = [] - self.recv_condition.acquire() - for event in self.recv_packets: - if event['event'] != 'stopped': - recv_packets.append(event) - self.recv_packets = recv_packets - self.recv_condition.release() + # Caller must still call wait_for_stopped. return response def request_disconnect(self, terminateDebuggee=None): |