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

Aahz aahz at pythoncraft.com
Fri Dec 14 23:12:58 CET 2007


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.
-- 
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