[Lldb-commits] [lldb] r200997 - Now that the command interpreter runs in a separate thread in Xcode, we need to lock the target API lock instead of trying to lock it.
Greg Clayton
gclayton at apple.com
Fri Feb 7 14:31:20 PST 2014
Author: gclayton
Date: Fri Feb 7 16:31:20 2014
New Revision: 200997
URL: http://llvm.org/viewvc/llvm-project?rev=200997&view=rev
Log:
Now that the command interpreter runs in a separate thread in Xcode, we need to lock the target API lock instead of trying to lock it.
What was happening was:
1 - Xcode ran and stopped and was doing work on thread 2
2 - Users would type something in Xcode console on thread 1
3 - thread 3 would be running command interpreter thread and try to execute command but get "failed to get API lock" error for any command that wanted the target API lock (like "expression")
<rdar://problem/15775016>
Modified:
lldb/trunk/source/Interpreter/CommandObject.cpp
Modified: lldb/trunk/source/Interpreter/CommandObject.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Interpreter/CommandObject.cpp?rev=200997&r1=200996&r2=200997&view=diff
==============================================================================
--- lldb/trunk/source/Interpreter/CommandObject.cpp (original)
+++ lldb/trunk/source/Interpreter/CommandObject.cpp Fri Feb 7 16:31:20 2014
@@ -261,13 +261,7 @@ CommandObject::CheckRequirements (Comman
{
Target *target = m_exe_ctx.GetTargetPtr();
if (target)
- {
- if (m_api_locker.TryLock (target->GetAPIMutex(), NULL) == false)
- {
- result.AppendError ("failed to get API lock");
- return false;
- }
- }
+ m_api_locker.Lock (target->GetAPIMutex());
}
}
More information about the lldb-commits
mailing list