diff options
author | Jonas Devlieghere <jonas@devlieghere.com> | 2025-08-04 10:44:32 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-08-04 10:44:32 -0700 |
commit | ad623a813e6d9ffdef62270656245b35ffceda37 (patch) | |
tree | bbfc6efe333ceb717c72bdc6a848a2db1b5919c0 /lldb/source/Plugins/ScriptInterpreter/Python | |
parent | 9d151897ba4a12fb8a85c545b7033efe328fe7d4 (diff) | |
download | llvm-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.cpp | 1 | ||||
-rw-r--r-- | lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp | 5 |
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"); |