Implementing the notion of externally-acquirable ScriptInterpreter lock
authorEnrico Granata <egranata@apple.com>
Wed, 27 Mar 2013 22:38:11 +0000 (22:38 +0000)
committerEnrico Granata <egranata@apple.com>
Wed, 27 Mar 2013 22:38:11 +0000 (22:38 +0000)
commit360cc3188db5f5b65c7fcddba0b2e38fd3483d15
tree818fcc83e29393c1c824d48b9977d7cbcdfc5e0d
parent459d3ee1ddea63b61f495fd8d5335ad0290990ed
Implementing the notion of externally-acquirable ScriptInterpreter lock
With this notion, if parties outside the ScriptInterpreter itself need to acquire a lock on script APIs, they can do so by a pattern like this:

{
auto lock = interpeter->AcquireInterpreterLock();
// do whatever you need to do...
} // lock will automatically be released here

This might be useful for classes that use the Python convenience objects (e.g. PythonDictionary) to ensure they keep the underlying interpreter in a safe and controlled condition while they call through the C API functions
Of course, the ScriptInterpreter still manages its internal locking correctly when necessary :-)

llvm-svn: 178189
lldb/include/lldb/Interpreter/ScriptInterpreter.h
lldb/include/lldb/Interpreter/ScriptInterpreterPython.h
lldb/include/lldb/lldb-forward.h
lldb/source/Interpreter/ScriptInterpreter.cpp
lldb/source/Interpreter/ScriptInterpreterPython.cpp