summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test
diff options
context:
space:
mode:
authorJason Molenda <jmolenda@apple.com>2017-02-24 03:35:46 +0000
committerJason Molenda <jmolenda@apple.com>2017-02-24 03:35:46 +0000
commit1e7ecd3e64461bc001495239eb168b0748d29c3d (patch)
tree66ad2b64f26cbe277883ac93d403087aaebd1e99 /lldb/packages/Python/lldbsuite/test
parent9a2bba7251ab552b941d3964d6cb6f2b54fd14c0 (diff)
downloadbcm5719-llvm-1e7ecd3e64461bc001495239eb168b0748d29c3d.tar.gz
bcm5719-llvm-1e7ecd3e64461bc001495239eb168b0748d29c3d.zip
Fix a race condition in FuncUnwinders where the mutex was being
acquired only after checking if the ivar shared pointer was already filled in. But when I assign an UnwindPlan object to the shared pointer, I assign an empty object and then fill it in. That leaves a window where another thread could get the shared pointer to the empty (but quickly being-filled-in) object and lead to a crash. Also two changes from Greg for correctness on the TestMultipleDebuggers test case. <rdar://problem/30564102> llvm-svn: 296084
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test')
-rw-r--r--lldb/packages/Python/lldbsuite/test/api/multiple-debuggers/TestMultipleDebuggers.py2
-rw-r--r--lldb/packages/Python/lldbsuite/test/api/multiple-debuggers/multi-process-driver.cpp4
2 files changed, 6 insertions, 0 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/api/multiple-debuggers/TestMultipleDebuggers.py b/lldb/packages/Python/lldbsuite/test/api/multiple-debuggers/TestMultipleDebuggers.py
index 20e41f0f412..e79c5bac7d1 100644
--- a/lldb/packages/Python/lldbsuite/test/api/multiple-debuggers/TestMultipleDebuggers.py
+++ b/lldb/packages/Python/lldbsuite/test/api/multiple-debuggers/TestMultipleDebuggers.py
@@ -6,6 +6,7 @@ from __future__ import print_function
import os
import re
import subprocess
+import sys
import lldb
from lldbsuite.test.decorators import *
@@ -38,6 +39,7 @@ class TestMultipleSimultaneousDebuggers(TestBase):
self.inferior_exe = os.path.join(os.getcwd(), "testprog")
self.buildDriver('testprog.cpp', self.inferior_exe)
self.addTearDownHook(lambda: os.remove(self.inferior_exe))
+ sys.exit()
# check_call will raise a CalledProcessError if multi-process-driver doesn't return
# exit code 0 to indicate success. We can let this exception go - the test harness
diff --git a/lldb/packages/Python/lldbsuite/test/api/multiple-debuggers/multi-process-driver.cpp b/lldb/packages/Python/lldbsuite/test/api/multiple-debuggers/multi-process-driver.cpp
index 883e3b56153..15170a3e5eb 100644
--- a/lldb/packages/Python/lldbsuite/test/api/multiple-debuggers/multi-process-driver.cpp
+++ b/lldb/packages/Python/lldbsuite/test/api/multiple-debuggers/multi-process-driver.cpp
@@ -217,6 +217,10 @@ void *do_one_debugger (void *in)
int main (int argc, char **argv)
{
+#if !defined(_MSC_VER)
+ signal(SIGPIPE, SIG_IGN);
+#endif
+
SBDebugger::Initialize();
completed_threads_array = (bool *) malloc (sizeof (bool) * NUMBER_OF_SIMULTANEOUS_DEBUG_SESSIONS);
OpenPOWER on IntegriCloud