Package: python-rrdtool
Version: 1.4.7-2
Severity: normal

Hello,

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.


Ciao,

Enrico


-- System Information:
Debian Release: wheezy/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 3.2.0-3-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages python-rrdtool depends on:
ii  libc6    2.13-35
ii  librrd4  1.4.7-2
ii  python   2.7.3~rc2-1

python-rrdtool recommends no packages.

python-rrdtool suggests no packages.

-- no debconf information


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to