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
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits