[Python-Dev] RFC: PEP 475, Retry system calls failing with EINTR

Marko Rauhamaa marko at pacujo.net
Mon Sep 1 13:15:52 CEST 2014


Charles-François Natali <cf.natali at gmail.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.


Marko


More information about the Python-Dev mailing list