]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-36184: Port python-gdb.py to FreeBSD (GH-18873)
authorVictor Stinner <vstinner@python.org>
Mon, 9 Mar 2020 18:35:26 +0000 (19:35 +0100)
committerGitHub <noreply@github.com>
Mon, 9 Mar 2020 18:35:26 +0000 (19:35 +0100)
python-gdb.py now checks for "take_gil" function name to check if a
frame tries to acquire the GIL, instead of checking for
"pthread_cond_timedwait" which is specific to Linux and can be a
different condition than the GIL.

Misc/NEWS.d/next/Tools-Demos/2020-03-09-13-28-13.bpo-36184.BMPJ0D.rst [new file with mode: 0644]
Tools/gdb/libpython.py

diff --git a/Misc/NEWS.d/next/Tools-Demos/2020-03-09-13-28-13.bpo-36184.BMPJ0D.rst b/Misc/NEWS.d/next/Tools-Demos/2020-03-09-13-28-13.bpo-36184.BMPJ0D.rst
new file mode 100644 (file)
index 0000000..2c845e7
--- /dev/null
@@ -0,0 +1,4 @@
+Port python-gdb.py to FreeBSD. python-gdb.py now checks for "take_gil"
+function name to check if a frame tries to acquire the GIL, instead of
+checking for "pthread_cond_timedwait" which is specific to Linux and can be
+a different condition than the GIL.
index 2ab7d3b11cadadb3512d436331a78d532cd68b82..cd7ae1097d4feebb82a85933ebf7518fbbb2ee13 100755 (executable)
@@ -1600,7 +1600,7 @@ class Frame(object):
         # This assumes the _POSIX_THREADS version of Python/ceval_gil.h:
         name = self._gdbframe.name()
         if name:
-            return 'pthread_cond_timedwait' in name
+            return (name == 'take_gil')
 
     def is_gc_collect(self):
         '''Is this frame "collect" within the garbage-collector?'''