From adb27ea2d5e2f74f4be8f15b199889161c33e801 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Sun, 23 Jul 2023 21:07:12 +0200 Subject: [PATCH] gh-106320: Remove _PyIsSelectable_fd() C API (#107142) Move _PyIsSelectable_fd() macro to the internal C API (pycore_fileutils.h). --- Include/fileobject.h | 8 -------- Include/internal/pycore_fileutils.h | 7 +++++++ Modules/_ssl.c | 1 + 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Include/fileobject.h b/Include/fileobject.h index 2deef544d66..6a6d1140949 100644 --- a/Include/fileobject.h +++ b/Include/fileobject.h @@ -29,14 +29,6 @@ Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_HasFileSystemDefaultEncoding; Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_UTF8Mode; #endif -/* A routine to check if a file descriptor can be select()-ed. */ -#ifdef _MSC_VER - /* On Windows, any socket fd can be select()-ed, no matter how high */ - #define _PyIsSelectable_fd(FD) (1) -#else - #define _PyIsSelectable_fd(FD) ((unsigned int)(FD) < (unsigned int)FD_SETSIZE) -#endif - #ifndef Py_LIMITED_API # define Py_CPYTHON_FILEOBJECT_H # include "cpython/fileobject.h" diff --git a/Include/internal/pycore_fileutils.h b/Include/internal/pycore_fileutils.h index ef6642d00f1..7ba9b3ee58b 100644 --- a/Include/internal/pycore_fileutils.h +++ b/Include/internal/pycore_fileutils.h @@ -10,6 +10,13 @@ extern "C" { #include /* struct lconv */ +/* A routine to check if a file descriptor can be select()-ed. */ +#ifdef _MSC_VER + /* On Windows, any socket fd can be select()-ed, no matter how high */ + #define _PyIsSelectable_fd(FD) (1) +#else + #define _PyIsSelectable_fd(FD) ((unsigned int)(FD) < (unsigned int)FD_SETSIZE) +#endif struct _fileutils_state { int force_ascii; diff --git a/Modules/_ssl.c b/Modules/_ssl.c index ed720b4295f..699431c248a 100644 --- a/Modules/_ssl.c +++ b/Modules/_ssl.c @@ -26,6 +26,7 @@ #define OPENSSL_NO_DEPRECATED 1 #include "Python.h" +#include "pycore_fileutils.h" // _PyIsSelectable_fd() #include "pycore_weakref.h" // _PyWeakref_GET_REF() /* Include symbols from _socket module */