diff options
author | Caroline Tice <ctice@apple.com> | 2011-01-14 00:29:16 +0000 |
---|---|---|
committer | Caroline Tice <ctice@apple.com> | 2011-01-14 00:29:16 +0000 |
commit | 2f88aadff1276ea99569657b8424776167ec5a34 (patch) | |
tree | 698f290fb0c66494fd953537ff1aa2e3ddd54602 /lldb/source/Interpreter/ScriptInterpreter.cpp | |
parent | 0c34cb429ed90af168b1c2a8384401feb2e0085f (diff) | |
download | bcm5719-llvm-2f88aadff1276ea99569657b8424776167ec5a34.tar.gz bcm5719-llvm-2f88aadff1276ea99569657b8424776167ec5a34.zip |
Split up the Python script interpreter code to allow multiple script interpreter objects to
exist within the same process (one script interpreter object per debugger object). The
python script interpreter objects are all using the same global Python script interpreter;
they use separate dictionaries to keep their data separate, and mutex's to prevent any object
attempting to use the global Python interpreter when another object is already using it.
llvm-svn: 123415
Diffstat (limited to 'lldb/source/Interpreter/ScriptInterpreter.cpp')
-rw-r--r-- | lldb/source/Interpreter/ScriptInterpreter.cpp | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/lldb/source/Interpreter/ScriptInterpreter.cpp b/lldb/source/Interpreter/ScriptInterpreter.cpp index aedeff705c2..cfc2572997d 100644 --- a/lldb/source/Interpreter/ScriptInterpreter.cpp +++ b/lldb/source/Interpreter/ScriptInterpreter.cpp @@ -17,15 +17,17 @@ #include "lldb/Core/Stream.h" #include "lldb/Core/StringList.h" #include "lldb/Interpreter/CommandReturnObject.h" +#include "lldb/Interpreter/ScriptInterpreterPython.h" #include "lldb/Utility/PseudoTerminal.h" using namespace lldb; using namespace lldb_private; -ScriptInterpreter::ScriptInterpreter (CommandInterpreter &interpreter, ScriptLanguage script_lang) : +ScriptInterpreter::ScriptInterpreter (CommandInterpreter &interpreter, lldb::ScriptLanguage script_lang) : m_interpreter (interpreter), m_script_lang (script_lang), - m_interpreter_pty () + m_interpreter_pty (), + m_pty_slave_name () { if (m_interpreter_pty.OpenFirstAvailableMaster (O_RDWR|O_NOCTTY, NULL, 0)) { @@ -40,6 +42,12 @@ ScriptInterpreter::~ScriptInterpreter () m_interpreter_pty.CloseMasterFileDescriptor(); } +CommandInterpreter & +ScriptInterpreter::GetCommandInterpreter () +{ + return m_interpreter; +} + const char * ScriptInterpreter::GetScriptInterpreterPtyName () { @@ -81,3 +89,16 @@ ScriptInterpreter::LanguageToString (lldb::ScriptLanguage language) return return_value; } + +void +ScriptInterpreter::Initialize () +{ + ScriptInterpreterPython::Initialize (); +} + +void +ScriptInterpreter::Terminate () +{ + ScriptInterpreterPython::Terminate (); +} + |