Author: Pavel Labath Date: 2022-05-09T11:11:01+02:00 New Revision: fa593b079b76f1c30d684cfe42a662fed157e2e5
URL: https://github.com/llvm/llvm-project/commit/fa593b079b76f1c30d684cfe42a662fed157e2e5 DIFF: https://github.com/llvm/llvm-project/commit/fa593b079b76f1c30d684cfe42a662fed157e2e5.diff LOG: Revert "[lldb] parallelize calling of Module::PreloadSymbols()" This reverts commit b7d807dbcff0d9df466e0312b4fef57178d207be -- it breaks TestMultipleDebuggers.py. Added: Modified: lldb/source/Target/Target.cpp Removed: ################################################################################ diff --git a/lldb/source/Target/Target.cpp b/lldb/source/Target/Target.cpp index d6ad333957e11..ed733f2645c3a 100644 --- a/lldb/source/Target/Target.cpp +++ b/lldb/source/Target/Target.cpp @@ -62,7 +62,6 @@ #include "llvm/ADT/ScopeExit.h" #include "llvm/ADT/SetVector.h" -#include "llvm/Support/ThreadPool.h" #include <memory> #include <mutex> @@ -1624,17 +1623,6 @@ void Target::NotifyModulesRemoved(lldb_private::ModuleList &module_list) { void Target::ModulesDidLoad(ModuleList &module_list) { const size_t num_images = module_list.GetSize(); if (m_valid && num_images) { - if (GetPreloadSymbols()) { - // Try to preload symbols in parallel. - llvm::ThreadPoolTaskGroup task_group(Debugger::GetThreadPool()); - auto preload_symbols_fn = [&](size_t idx) { - ModuleSP module_sp(module_list.GetModuleAtIndex(idx)); - module_sp->PreloadSymbols(); - }; - for (size_t idx = 0; idx < num_images; ++idx) - task_group.async(preload_symbols_fn, idx); - task_group.wait(); - } for (size_t idx = 0; idx < num_images; ++idx) { ModuleSP module_sp(module_list.GetModuleAtIndex(idx)); LoadScriptingResourceForModule(module_sp, this); @@ -2182,6 +2170,11 @@ ModuleSP Target::GetOrCreateModule(const ModuleSpec &module_spec, bool notify, }); } + // Preload symbols outside of any lock, so hopefully we can do this for + // each library in parallel. + if (GetPreloadSymbols()) + module_sp->PreloadSymbols(); + llvm::SmallVector<ModuleSP, 1> replaced_modules; for (ModuleSP &old_module_sp : old_modules) { if (m_images.GetIndexForModule(old_module_sp.get()) != _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits