[rrd-developers] Bug#691765: Bindings don't seem to release the GIL when doing I/O
tokkee at debian.org
Fri Apr 25 21:24:40 CEST 2014
forwarded 691765 rrd-developers at lists.oetiker.ch
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.
Thanks for sharing this. With this email, I'm forwarding the issue to
the upstream developers mailinglist for further attention.
Sebastian "tokkee" Harl +++ GnuPG-ID: 0x8501C7FC +++ http://tokkee.org/
Those who would give up Essential Liberty to purchase a little Temporary
Safety, deserve neither Liberty nor Safety. -- Benjamin Franklin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 198 bytes
Desc: Digital signature
Url : http://lists.oetiker.ch/pipermail/rrd-developers/attachments/20140425/611b3af3/attachment.pgp
More information about the rrd-developers