Charles-François Natali email@example.com:
Which raises an interesting question: what happens to the os.read() return value if SIGINT is received?
There's no return value, a KeywordInterrupt exception is raised. The PEP wouldn't change this behavior.
Slightly disconcerting... but I'm sure overriding SIGINT would cure that. You don't want to lose data if you want to continue running.
As for the general behavior: all programming languages/platforms handle EINTR transparently.
C doesn't. EINTR is there for a purpose. I sure hope Python won't bury it under opaque APIs.
The two requirements are:
* Allow the application to react to signals immediately in the main flow.
* Don't lose information.