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

Guido van Rossum guido at python.org
Fri Dec 14 23:25:49 CET 2007


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!

Anyway, did you see that we resolved this and have a patch ready for review?

http://bugs.python.org/issue1583

-- 
--Guido van Rossum (home page: http://www.python.org/~guido/)


More information about the Python-Dev mailing list