[Python-Dev] Signals+Threads (PyGTK waking up 10x/sec).
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
>> 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?
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