clayborg requested changes to this revision. clayborg added a comment. This revision now requires changes to proceed.
DWARFDebugInfo::ParseCompileUnitHeadersIfNeeded() seems broken, see inlined comments. ================ Comment at: source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.cpp:114-119 + { + // C++14: std::lock_guard<std::shared_timed_mutex> + // guard(m_dwz_uniq_mutex); + std::lock_guard<std::recursive_mutex> guard(m_dwz_uniq_mutex); + m_compile_units.push_back(cu_sp); } ---------------- So if some code calls DWARFDebugInfo::ParseCompileUnitHeadersIfNeeded() after this loop has added 1 compile unit they will return and be able to proceed? This doesn't make sense. ================ Comment at: source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.h:80 + // C++14: mutable std::shared_timed_mutex m_dwz_uniq_mutex; + mutable std::recursive_mutex m_dwz_uniq_mutex; + ---------------- Why is this named m_dwz_uniq_mutex? Seems to be protected m_compile_units. Should this be named "m_compile_units_mutex"? https://reviews.llvm.org/D40472 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits