[Lldb-commits] [PATCH] D13662: Make dwarf parsing multi-threaded

Zachary Turner via lldb-commits lldb-commits at lists.llvm.org
Mon Oct 12 13:15:45 PDT 2015


zturner added a subscriber: zturner.

================
Comment at: source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp:2074
@@ +2073,3 @@
+
+                std::lock_guard<std::mutex> lock(index_mutex);
+                m_function_basename_index.Append(function_basename_index);
----------------
Every one of these is locking the same mutex.  You could make arrays outside of the async work that is `num_compile_units` entries, and put each result in its own entry in the array.

After the wait, you could make more async workers.  One for each variable.  like `m_function_base_name_index.Append` could be one async job, and the same for each of the other ones.


http://reviews.llvm.org/D13662





More information about the lldb-commits mailing list