[Bug python/23615] release the GIL in python.c:execute_gdb_command
cvs-commit at gcc dot gnu.org
sourceware-bugzilla@sourceware.org
Wed Jan 30 14:34:00 GMT 2019
https://sourceware.org/bugzilla/show_bug.cgi?id=23615
--- Comment #3 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Tom Tromey <tromey@sourceware.org>:
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=b5eba2d8c050b39943918057283470959a5d18c3
commit b5eba2d8c050b39943918057283470959a5d18c3
Author: Tom Tromey <tom@tromey.com>
Date: Fri Sep 7 20:02:21 2018 -0600
Release the GIL while running a gdb command or expression
PR python/23615 points out that gdb.execute_gdb_command does not
release the Python GIL. This means that, while the gdb command is
running, other Python threads do not run.
This patch solves the problem by introducing a new RAII class that can
be used to temporarily release and then re-acquire the GIL, then puts
this into the appropriate places in execute_gdb_command and
gdbpy_parse_and_eval.
This does not include a test case, because after some research I could
not find a way to write one that was not racy.
gdb/ChangeLog
2019-01-30 Tom Tromey <tom@tromey.com>
PR python/23615:
* python/python.c (execute_gdb_command): Use gdbpy_allow_threads.
(gdbpy_parse_and_eval): Likewise.
* python/python-internal.h (gdbpy_allow_threads): New class.
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the Gdb-prs
mailing list