[rrd-developers] Bug#691765: Bindings don't seem to release the GIL when doing I/O
nirgal at debian.org
Thu Aug 27 22:18:16 CEST 2015
Control: tags -1 + patch
On Mon, Oct 29, 2012 at 02:49:03PM +0100, Enrico Zini wrote:
> I was auditing the rrdtool binding code to check if they could be used
> in a python thread without locking the entire application via the GIL.
> Extensions are supposed to release the GIL lock around potentially
> blocking I/O operations like reading or writing a file, so that other
> Python threads can run in the meantime.
> I went through rrdtoolmodule.c and didn't see any use of
> Py_BEGIN_ALLOW_THREADS or thread-related functions, so it looks like
> python-rrdtool would keep all concurrent threads of the application
> blocked during I/O.
> http://docs.python.org/2/c-api/init.html#threads has more details.
> This isn't an urgent issue for me personally: we're using pyrrd
> through the 'external' backend, which uses Popen to invoke rrdtool, and
> Popen correctly releases the GIL during I/O. However, I felt like I
> should share what I found during my little code review.
How does this look?
Not asking for a full review, a "that's the idea" would be cool. ^^
More information about the rrd-developers