aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/ScriptInterpreter/Python
diff options
context:
space:
mode:
authorJonas Devlieghere <jonas@devlieghere.com>2025-08-04 10:44:32 -0700
committerGitHub <noreply@github.com>2025-08-04 10:44:32 -0700
commitad623a813e6d9ffdef62270656245b35ffceda37 (patch)
treebbfc6efe333ceb717c72bdc6a848a2db1b5919c0 /lldb/source/Plugins/ScriptInterpreter/Python
parent9d151897ba4a12fb8a85c545b7033efe328fe7d4 (diff)
downloadllvm-ad623a813e6d9ffdef62270656245b35ffceda37.zip
llvm-ad623a813e6d9ffdef62270656245b35ffceda37.tar.gz
llvm-ad623a813e6d9ffdef62270656245b35ffceda37.tar.bz2
[lldb] Eliminate PyGILState_Check (NFC) (#152006)
Eliminate calls to PyGILState_Check, which is not part of the Python Limited C API. In the Locker, we can use PyGILState_Ensure directly. We could do something similar to replace the assert, but I don't think it's worth it. We don't assert that we hold the GIL anywhere else.
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python')
-rw-r--r--lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp1
-rw-r--r--lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp5
2 files changed, 3 insertions, 3 deletions
diff --git a/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp b/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp
index b07415e..e124954 100644
--- a/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp
+++ b/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp
@@ -261,7 +261,6 @@ PythonObject PythonObject::GetAttributeValue(llvm::StringRef attr) const {
}
StructuredData::ObjectSP PythonObject::CreateStructuredObject() const {
- assert(PyGILState_Check());
switch (GetObjectType()) {
case PyObjectType::Dictionary:
return PythonDictionary(PyRefType::Borrowed, m_py_obj)
diff --git a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
index adc172c..24d604f 100644
--- a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
+++ b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
@@ -139,11 +139,12 @@ public:
PyConfig_Clear(&config);
// The only case we should go further and acquire the GIL: it is unlocked.
- if (PyGILState_Check())
+ PyGILState_STATE gil_state = PyGILState_Ensure();
+ if (gil_state != PyGILState_UNLOCKED)
return;
m_was_already_initialized = true;
- m_gil_state = PyGILState_Ensure();
+ m_gil_state = gil_state;
LLDB_LOGV(GetLog(LLDBLog::Script),
"Ensured PyGILState. Previous state = {0}",
m_gil_state == PyGILState_UNLOCKED ? "unlocked" : "locked");