Author: Jonas Devlieghere Date: 2020-04-28T19:21:58-07:00 New Revision: 75c3d6f49c450a8b522a6731c317e75b73a2f5a3
URL: https://github.com/llvm/llvm-project/commit/75c3d6f49c450a8b522a6731c317e75b73a2f5a3 DIFF: https://github.com/llvm/llvm-project/commit/75c3d6f49c450a8b522a6731c317e75b73a2f5a3.diff LOG: [lldb/Platform] Synchronize access to SDK String Map. The SwiftASTContext queries this function in parallel and requires synchronization. Added: Modified: lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.h Removed: ################################################################################ diff --git a/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp b/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp index 5252d37a01c5..6a00afba68ca 100644 --- a/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp +++ b/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp @@ -1762,6 +1762,7 @@ PlatformDarwin::FindXcodeContentsDirectoryInPath(llvm::StringRef path) { } std::string PlatformDarwin::GetSDKPath(XcodeSDK sdk) { + std::lock_guard<std::mutex> guard(m_sdk_path_mutex); std::string &path = m_sdk_path[sdk.GetString()]; if (!path.empty()) return path; diff --git a/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.h b/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.h index d3b4181aafa0..e4f717380e8b 100644 --- a/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.h +++ b/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.h @@ -171,6 +171,7 @@ class PlatformDarwin : public PlatformPOSIX { std::string m_developer_directory; llvm::StringMap<std::string> m_sdk_path; + std::mutex m_sdk_path_mutex; private: DISALLOW_COPY_AND_ASSIGN(PlatformDarwin); _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits