From 6258c53e12dbf973f64acbc055312f57564bc7d8 Mon Sep 17 00:00:00 2001 From: Caroline Tice Date: Mon, 7 Mar 2011 23:24:28 +0000 Subject: Add thread state initialization to the thread where the interactive interpreter is run (which is separate from the thread where Py_Initialize is called, where this normally gets set up). llvm-svn: 127191 --- lldb/source/Interpreter/ScriptInterpreterPython.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'lldb/source/Interpreter/ScriptInterpreterPython.cpp') diff --git a/lldb/source/Interpreter/ScriptInterpreterPython.cpp b/lldb/source/Interpreter/ScriptInterpreterPython.cpp index 54d46068905a..68c120d451c5 100644 --- a/lldb/source/Interpreter/ScriptInterpreterPython.cpp +++ b/lldb/source/Interpreter/ScriptInterpreterPython.cpp @@ -1384,10 +1384,16 @@ ScriptInterpreterPython::RunEmbeddedPythonInterpreter (lldb::thread_arg_t baton) // The following call drops into the embedded interpreter loop and stays there until the // user chooses to exit from the Python interpreter. + Py_BEGIN_ALLOW_THREADS + PyGILState_STATE gstate = PyGILState_Ensure(); + run_string.Printf ("run_python_interpreter (%s)", script_interpreter->m_dictionary_name.c_str()); PyRun_SimpleString (run_string.GetData()); run_string.Clear (); + PyGILState_Release (gstate); + Py_END_ALLOW_THREADS + run_string.Printf ("run_one_line (%s, 'sys.stdin = save_stdin')", script_interpreter->m_dictionary_name.c_str()); PyRun_SimpleString (run_string.GetData()); run_string.Clear(); @@ -1474,6 +1480,7 @@ ScriptInterpreterPython::Initialize () ::setenv ("PYTHONPATH", pathon_path_env_cstr, 1); } + PyEval_InitThreads (); Py_Initialize (); PyObject *compiled_module = Py_CompileString (embedded_interpreter_string, -- cgit v1.2.3