[Python-Dev] RFC: PEP 475, Retry system calls failing with EINTR
R. David Murray
rdmurray at bitdance.com
Mon Sep 1 17:47:07 CEST 2014
On Mon, 01 Sep 2014 14:15:52 +0300, Marko Rauhamaa <marko at pacujo.net> wrote:
> 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.
You don't want to be writing your code in Python then. In Python
you *never* get to react immediately to signals. The interpreter
sets a flag and calls the python signal handler later. Yes, the
call is ASAP, but ASAP is *not* "immediately".
> * Don't lose information.
>
>
> Marko
> _______________________________________________
> Python-Dev mailing list
> Python-Dev at python.org
> https://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe: https://mail.python.org/mailman/options/python-dev/rdmurray%40bitdance.com
More information about the Python-Dev
mailing list