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

Reply via email to