[Python-Dev] RFC: PEP 475, Retry system calls failing with EINTR
Antoine Pitrou
solipsis at pitrou.net
Mon Sep 1 14:58:18 CEST 2014
Hi,
I'm +1 on the whole PEP.
> Writing a signal handler is difficult, only "async-signal safe"
> functions can be called.
You mean a C signal handler? Python signal handlers are not restricted.
> Some signals are not interesting and should not interrupt the the
> application. There are two options to only interrupt an application
> on some signals:
>
> * Raise an exception in the signal handler, like ``KeyboardInterrupt`` for
> ``SIGINT``
> * Use a I/O multiplexing function like ``select()`` with the Python
> signal "wakeup" file descriptor: see the function
> ``signal.set_wakeup_fd()``.
This section looks a bit incomplete. Some calls such as os.read() or
os.write() will (should) return a partial result when interrupted and
they already handled >0 bytes. Perhaps other functions have a similar
behaviour?
> On Unix, the ``asyncio`` module uses the wakeup file descriptor to
> wake up its event loop.
How about Windows?
Regards
Antoine.
More information about the Python-Dev
mailing list