Control: tags -1 + patch Hello Enrico.
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? https://github.com/nirgal/rrdtool-1.x/commit/8949308812a0205dd356cefbe2eb2888012ee742 Not asking for a full review, a "that's the idea" would be cool. ^^ -- Nirgal <3 YKINMYKBYKIOK