From 06afac6c5740bb81d2b7ab9639d2b08cccf77d33 Mon Sep 17 00:00:00 2001 From: pxinwr Date: Tue, 8 Dec 2020 04:41:12 +0800 Subject: [PATCH] bpo-41462: Add os.set_blocking() support for VxWorks RTOS (GH-21713) --- .../next/Library/2020-08-03-17-54-32.bpo-41462.ek38d_.rst | 1 + Python/fileutils.c | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 Misc/NEWS.d/next/Library/2020-08-03-17-54-32.bpo-41462.ek38d_.rst diff --git a/Misc/NEWS.d/next/Library/2020-08-03-17-54-32.bpo-41462.ek38d_.rst b/Misc/NEWS.d/next/Library/2020-08-03-17-54-32.bpo-41462.ek38d_.rst new file mode 100644 index 000000000000..ca5da1b17b43 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2020-08-03-17-54-32.bpo-41462.ek38d_.rst @@ -0,0 +1 @@ +Add :func:`os.set_blocking()` support for VxWorks RTOS. diff --git a/Python/fileutils.c b/Python/fileutils.c index b589d7390d46..ac3828211742 100644 --- a/Python/fileutils.c +++ b/Python/fileutils.c @@ -2070,7 +2070,9 @@ _Py_get_blocking(int fd) int _Py_set_blocking(int fd, int blocking) { -#if defined(HAVE_SYS_IOCTL_H) && defined(FIONBIO) +/* bpo-41462: On VxWorks, ioctl(FIONBIO) only works on sockets. + Use fcntl() instead. */ +#if defined(HAVE_SYS_IOCTL_H) && defined(FIONBIO) && !defined(__VXWORKS__) int arg = !blocking; if (ioctl(fd, FIONBIO, &arg) < 0) goto error; -- 2.47.3