[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
> 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?
--Guido van Rossum (home page: http://www.python.org/~guido/)
More information about the Python-Dev