[Lldb-commits] [lldb] r211541 - Temporarily roll back the parts of r211241 where I fixed a

Jason Molenda jmolenda at apple.com
Mon Jun 23 14:30:15 PDT 2014


Author: jmolenda
Date: Mon Jun 23 16:30:15 2014
New Revision: 211541

URL: http://llvm.org/viewvc/llvm-project?rev=211541&view=rev
Log:
Temporarily roll back the parts of r211241 where I fixed a
mistake in the lock acquistion in HistoryUnwind and HistoryThread.
We've got a deadlock with one use case of HistoryUnwind; I
need to figure out what lock ordering is causing this and fix
it for real.  
<rdar://problem/17411904> 

Modified:
    lldb/trunk/source/Plugins/Process/Utility/HistoryThread.cpp
    lldb/trunk/source/Plugins/Process/Utility/HistoryUnwind.cpp

Modified: lldb/trunk/source/Plugins/Process/Utility/HistoryThread.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/Utility/HistoryThread.cpp?rev=211541&r1=211540&r2=211541&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/Utility/HistoryThread.cpp (original)
+++ lldb/trunk/source/Plugins/Process/Utility/HistoryThread.cpp Mon Jun 23 16:30:15 2014
@@ -78,7 +78,7 @@ HistoryThread::CreateRegisterContextForF
 lldb::StackFrameListSP
 HistoryThread::GetStackFrameList ()
 {
-    Mutex::Locker locker(m_framelist_mutex);
+    Mutex::Locker (m_framelist_mutex);   // FIXME do not throw away the lock after we acquire it..
     if (m_framelist.get() == NULL)
     {
         m_framelist.reset (new StackFrameList (*this, StackFrameListSP(), true));

Modified: lldb/trunk/source/Plugins/Process/Utility/HistoryUnwind.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/Utility/HistoryUnwind.cpp?rev=211541&r1=211540&r2=211541&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/Utility/HistoryUnwind.cpp (original)
+++ lldb/trunk/source/Plugins/Process/Utility/HistoryUnwind.cpp Mon Jun 23 16:30:15 2014
@@ -66,7 +66,7 @@ HistoryUnwind::DoCreateRegisterContextFo
 bool
 HistoryUnwind::DoGetFrameInfoAtIndex (uint32_t frame_idx, lldb::addr_t& cfa, lldb::addr_t& pc)
 {
-    Mutex::Locker locker(m_unwind_mutex);
+    Mutex::Locker (m_unwind_mutex);   // FIXME do not throw away the lock after we acquire it..
     if (frame_idx < m_pcs.size())
     {
         cfa = frame_idx;





More information about the lldb-commits mailing list