Message138403
> pipe_interruptible.patch is a patch to support to making poll()
> interruptible. It applies on top of pipe_poll_2.patch.
Hmm, it seems to me that it should be done in _poll() instead. Otherwise, recv() will not be interruptible, will it?
Also, after looking at this again, it seems sigint_event would be better provided (at the C level) by the Python core, e.g. as _PyOS_SigintEvent. The time module already uses a similar mechanism.
By setting the event in the sigint handler itself, rather than in an auxiliary HandlerRoutine callback function, it should also ensure that, when the event is set, the "tripped" bit in signalmodule.c has been set, meaning we wouldn't need to Sleep() anymore.
(I also wonder why the event isn't auto-reset. Otherwise, there's a race condition - which is probably harmless in most cases, but still.) |
|
Date |
User |
Action |
Args |
2011-06-15 22:29:02 | pitrou | set | recipients:
+ pitrou, tim.golden, jnoller, brian.curtin, sbt |
2011-06-15 22:29:02 | pitrou | set | messageid: <1308176942.86.0.122290496561.issue12328@psf.upfronthosting.co.za> |
2011-06-15 22:29:02 | pitrou | link | issue12328 messages |
2011-06-15 22:29:01 | pitrou | create | |
|