[Python-Dev] Signals+Threads (PyGTK waking up 10x/sec).

Aahz aahz at pythoncraft.com
Sat Dec 15 00:24:14 CET 2007


On Fri, Dec 14, 2007, Guido van Rossum wrote:
> On Dec 14, 2007 2:12 PM, Aahz <aahz at pythoncraft.com> wrote:
>> On Sat, Dec 08, 2007, glyph at divmod.com wrote:
>>> On 05:20 pm, guido at python.org wrote:
>>>>The best solution I can think of is to add a new API that takes a
>>>>signal and a file descriptor and registers a C-level handler for that
>>>>signal which writes a byte to the file descriptor. You can then create
>>>>a pipe, connect the signal handler to the write end, and add the read
>>>>end to your list of file descriptors passed to select() or poll(). The
>>>>handler must be written in C in order to avoid the race condition
>>>>referred to by Glyph (signals arriving after the signal check in the
>>>>VM main loop but before the select()/poll() system call is entered
>>>>will not be noticed until the select()/poll() call completes).
>>> This paragraph jogged my memory.  I remember this exact solution being
>>> discussed now, a year ago when I was last talking about these issues.
>> Ayup.  I am extremely far from an expert here, but anyone wanting to
>> have an informed opinion should really re-read the threads after these
>> posts:
>> http://mail.python.org/pipermail/python-dev/2006-September/068569.html
>> http://mail.python.org/pipermail/python-dev/2007-January/070772.html
>> I would recommend requesting review from either Nick Maclaren or Tim
>> Peters as well.
> Oh no, not Nick Maclaren!

;-)  Note carefully that I did not say you should necessarily follow
Nick's advice.  Still, having an expert tell you what you're doing wrong
usually helps even if their advice isn't relevant.

> Anyway, did you see that we resolved this and have a patch ready for review?
> http://bugs.python.org/issue1583

Yeah, I saw that after the fact, but I still think referring to the
previous threads should be useful for anyone wanting to review the patch.
Aahz (aahz at pythoncraft.com)           <*>         http://www.pythoncraft.com/

"Typing is cheap.  Thinking is expensive."  --Roy Smith

More information about the Python-Dev mailing list