Hi,

Sorry but I don't understand your remark. What is your problem with retrying syscall on EINTR? Can you please elaborate? What do you mean by "get wrong"?

Victor

Le dimanche 31 août 2014, Marko Rauhamaa <marko@pacujo.net> a écrit :
Victor Stinner <victor.stinner@gmail.com>:

> Proposition
> ===========
>
> If a system call fails with ``EINTR``, Python must call signal
> handlers: call ``PyErr_CheckSignals()``. If a signal handler raises
> an exception, the Python function fails with the exception.
> Otherwise, the system call is retried.  If the system call takes a
> timeout parameter, the timeout is recomputed.

Signals are tricky and easy to get wrong, to be sure, but I think it is
dangerous for Python to unconditionally commandeer signal handling. If
the proposition is accepted, there should be a way to opt out.


Marko