
On Mon, May 25, 2020 at 1:25 AM Serhiy Storchaka <storchaka@gmail.com> wrote:
24.05.20 17:48, Eric V. Smith пише:
Does anyone have an opinion on https://bugs.python.org/issue39673? It maps ETIME to TimeoutError, in addition to the already existing ETIMEDOUT.
http://man7.org/linux/man-pages/man3/errno.3.html says:
*ETIME *Timer expired (POSIX.1 (XSI STREAMS option)).
(POSIX.1 says "STREAMioctl(2) <http://man7.org/linux/man-pages/man2/ioctl.2.html> timeout".)
*ETIMEDOUT *Connection timed out (POSIX.1-2001).
It seems like a reasonable change to me, but I'm not a subject matter expert on STREAMS, or what other affect this might have.
Why it was not mapped at first place? Was there any discussion?
AFAICT from a few minutes of searching, ETIME is almost never used, which probably explains it. It doesn't show up in glibc at all, and only a few times in the Linux kernel sources, most notably in the graphics subsystem -- and apparently this causes some annoyance for the *BSDs, which share a bunch of that code and don't have ETIME, so they #define ETIME ETIMEDOUT to get the code to build. I'm not sure there's any point in making the change – the BPO doesn't even have an example of it, just someone who was poking around in obscure corners of errno and noticed it – but it seems harmless. It sounds like literally no-one knows what the difference between these is supposed to be. -n -- Nathaniel J. Smith -- https://vorpus.org