From 1e7ecd3e64461bc001495239eb168b0748d29c3d Mon Sep 17 00:00:00 2001 From: Jason Molenda Date: Fri, 24 Feb 2017 03:35:46 +0000 Subject: 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. llvm-svn: 296084 --- .../lldbsuite/test/api/multiple-debuggers/TestMultipleDebuggers.py | 2 ++ 1 file changed, 2 insertions(+) (limited to 'lldb/packages/Python/lldbsuite/test/api/multiple-debuggers/TestMultipleDebuggers.py') 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 -- cgit v1.2.3