Bug 13374 - bad GIL uses
Summary: bad GIL uses
Status: RESOLVED FIXED
Alias: None
Product: gdb
Classification: Unclassified
Component: python (show other bugs)
Version: unknown
: P2 normal
Target Milestone: 7.4
Assignee: Phil Muldoon
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-11-02 15:11 UTC by Tom Tromey
Modified: 2011-11-28 17:07 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Tom Tromey 2011-11-02 15:11:30 UTC
While reading the code I found a couple of spots where
the GIL is treated weirdly.

I don't see why gdbpy_decode_line should acquire the GIL.
This function will only be called in a Python context.

Acquiring the GIL in inferior_to_inferior object seems weird.
It isn't necessarily incorrect but it seems like it would be
preferable to acquire this in whichever callers need it;
usually these X_to_X_object calls are expected to be used in
a Python context.
Comment 1 Sourceware Commits 2011-11-28 15:49:50 UTC
CVSROOT:	/cvs/src
Module name:	src
Changes by:	pmuldoon@sourceware.org	2011-11-28 15:49:43

Modified files:
	gdb            : ChangeLog 
	gdb/python     : py-block.c py-breakpoint.c py-inferior.c 
	                 py-type.c py-value.c python.c 

Log message:
	2011-11-28  Phil Muldoon  <pmuldoon@redhat.com>
	
	PR python/13369
	PR python/13374
	
	* python/python.c (gdbpy_decode_line): Do not acquire GIL.
	* python/py-inferior.c (inferior_to_inferior_object): Ditto.
	* python/py-value.c (valpy_nonzero): Use TRY_CATCH to catch GDB
	exceptions.
	* python/py-type.c (typy_strip_typedefs): Ditto.
	(typy_legacy_template_argument): Ditto.
	* python/py-inferior.c (inferior_to_inferior_object): Ditto.
	* python/py-breakpoint.c (bppy_set_ignore_count): Ditto.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/ChangeLog.diff?cvsroot=src&r1=1.13554&r2=1.13555
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/python/py-block.c.diff?cvsroot=src&r1=1.9&r2=1.10
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/python/py-breakpoint.c.diff?cvsroot=src&r1=1.28&r2=1.29
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/python/py-inferior.c.diff?cvsroot=src&r1=1.16&r2=1.17
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/python/py-type.c.diff?cvsroot=src&r1=1.30&r2=1.31
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/python/py-value.c.diff?cvsroot=src&r1=1.29&r2=1.30
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/python/python.c.diff?cvsroot=src&r1=1.77&r2=1.78
Comment 2 Phil Muldoon 2011-11-28 17:07:29 UTC
Closed with commit details in comment #1.  Thanks.