summaryrefslogtreecommitdiffstats
path: root/Modules/selectmodule.c
Commit message (Collapse)AuthorAgeFilesLines
* [3.12] gh-91565: Update issue tracker URL in error message. (GH-117450) ↵Miss Islington (bot)2024-04-031-2/+2
| | | | | | | | | | | | (#117497) gh-91565: Update issue tracker URL in error message. (GH-117450) * Update issue tracker URL in commit message. * Also update issue tracker URL in comment. (cherry picked from commit 8987a5c809343ae0dd2b8e607bf2c32a87773127) Co-authored-by: Ezio Melotti <ezio.melotti@gmail.com>
* [3.12] gh-110395: invalidate open kqueues after fork (GH-110517) (#111745)Gregory P. Smith2023-11-111-7/+143
| | | | | | | | | | | | * [3.12] gh-110395: invalidate open kqueues after fork (GH-110517) Invalidate open select.kqueue instances after fork as the fd will be invalid in the child. (cherry picked from commit a6c1c04d4d2339f0094422974ae3f26f8c7c8565) Co-authored-by: Davide Rizzo <sorcio@gmail.com> * move assert to after the child dying this is in `main` via https://github.com/python/cpython/pull/111816/files
* [3.12] gh-107913: Fix possible losses of OSError error codes (GH-107930) ↵Miss Islington (bot)2023-08-261-2/+2
| | | | | | | | | | | | (#108523) gh-107913: Fix possible losses of OSError error codes (GH-107930) Functions like PyErr_SetFromErrno() and SetFromWindowsErr() should be called immediately after using the C API which sets errno or the Windows error code. (cherry picked from commit 2b15536fa94d07e9e286826c23507402313ec7f4) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* gh-98836: Extend PyUnicode_FromFormat() (GH-98838)Serhiy Storchaka2023-05-211-4/+1
| | | | | | | | | * Support for conversion specifiers o (octal) and X (uppercase hexadecimal). * Support for length modifiers j (intmax_t) and t (ptrdiff_t). * Length modifiers are now applied to all integer conversions. * Support for wchar_t C strings (%ls and %lV). * Support for variable width and precision (*). * Support for flag - (left alignment).
* gh-99113: Add Py_MOD_PER_INTERPRETER_GIL_SUPPORTED (gh-104205)Eric Snow2023-05-051-0/+1
| | | Here we are doing no more than adding the value for Py_mod_multiple_interpreters and using it for stdlib modules. We will start checking for it in gh-104206 (once PyInterpreterState.ceval.own_gil is added in gh-104204).
* gh-102255: Improve build support for Windows API partitions (GH-102256)Max Bachmann2023-03-091-2/+4
| | | | | Add `MS_WINDOWS_DESKTOP`, `MS_WINDOWS_APPS`, `MS_WINDOWS_SYSTEM` and `MS_WINDOWS_GAMES` preprocessor definitions to allow switching off functionality missing from particular API partitions ("partitions" are used in Windows to identify overlapping subsets of APIs). CPython only officially supports `MS_WINDOWS_DESKTOP` and `MS_WINDOWS_SYSTEM` (APPS is included by normal desktop builds, but APPS without DESKTOP is not covered). Other configurations are a convenience for people building their own runtimes. `MS_WINDOWS_GAMES` is for the Xbox subset of the Windows API, which is also available on client OS, but is restricted compared to `MS_WINDOWS_DESKTOP`. These restrictions may change over time, as they relate to the build headers rather than the OS support, and so we assume that Xbox builds will use the latest available version of the GDK.
* gh-99300: Replace Py_INCREF() with Py_NewRef() (#99513)Victor Stinner2022-11-161-2/+1
| | | | Replace Py_INCREF() and Py_XINCREF() using a cast with Py_NewRef() and Py_XNewRef().
* gh-95174: Handle missing dup() and constants in WASI (GH-95229)Christian Heimes2022-07-261-0/+5
| | | | | | | - check for ``dup()`` libc function - handle missing ``F_DUPFD`` in ``dup2()`` replacement function - add workaround for WASI libc bug in MSG_TRUNC - ESHUTDOWN is missing, use EPIPE instead - POLLPRI is missing, define as 0 (no-op)
* bpo-40280: select: Use NULL for empty fdset (GH-31865)Christian Heimes2022-03-141-1/+6
| | | | | wasm32-emscripten does not support exceptfds and requires NULL. Python now passes NULL instead of a fdset pointer when the input list is empty. This works fine on all platforms and might even be a tiny bit faster.
* bpo-41857: mention timeout argument units in select.poll() and ↵Zane Bitter2022-01-201-2/+6
| | | | select.depoll() doc-strings (GH-22406)
* bpo-46303: Move fileutils.h private functions to internal C API (GH-30484)Victor Stinner2022-01-111-1/+6
| | | | | | | | | | Move almost all private functions of Include/cpython/fileutils.h to the internal C API Include/internal/pycore_fileutils.h. Only keep _Py_fopen_obj() in Include/cpython/fileutils.h, since it's used by _testcapi which must not use the internal C API. Move EncodeLocaleEx() and DecodeLocaleEx() functions from _testcapi to _testinternalcapi, since the C API moved to the internal C API.
* bpo-41710: Add private _PyDeadline_Get() function (GH-28674)Victor Stinner2021-10-011-13/+16
| | | | | | | | Add a private C API for deadlines: add _PyDeadline_Init() and _PyDeadline_Get() functions. * Add _PyTime_Add() and _PyTime_Mul() functions which compute t1+t2 and t1*t2 and clamp the result on overflow. * _PyTime_MulDiv() now uses _PyTime_Add() and _PyTime_Mul().
* bpo-41710: Add _PyTime_AsTimespec_clamp() (GH-28629)Victor Stinner2021-09-301-1/+1
| | | | | | | | | | | | | | | Add the _PyTime_AsTimespec_clamp() function: similar to _PyTime_AsTimespec(), but clamp to _PyTime_t min/max and don't raise an exception. PyThread_acquire_lock_timed() now uses _PyTime_AsTimespec_clamp() to remove the Py_UNREACHABLE() code path. * Add _PyTime_AsTime_t() function. * Add PY_TIME_T_MIN and PY_TIME_T_MAX constants. * Replace _PyTime_AsTimeval_noraise() with _PyTime_AsTimeval_clamp(). * Add pytime_divide_round_up() function. * Fix integer overflow in pytime_divide(). * Add pytime_divmod() function.
* bpo-43916: select.devpoll uses Py_TPFLAGS_DISALLOW_INSTANTIATION (GH-25751)Victor Stinner2021-04-301-9/+1
|
* bpo-43916: select.poll uses Py_TPFLAGS_DISALLOW_INSTANTIATION (GH-25750)Erlend Egeberg Aasland2021-04-301-13/+4
|
* bpo-42519: Replace PyObject_MALLOC() with PyObject_Malloc() (GH-23587)Victor Stinner2020-12-011-2/+2
| | | | | | | | | No longer use deprecated aliases to functions: * Replace PyObject_MALLOC() with PyObject_Malloc() * Replace PyObject_REALLOC() with PyObject_Realloc() * Replace PyObject_FREE() with PyObject_Free() * Replace PyObject_Del() with PyObject_Free() * Replace PyObject_DEL() with PyObject_Free()
* bpo-42519: Replace PyMem_MALLOC() with PyMem_Malloc() (GH-23586)Victor Stinner2020-12-011-9/+9
| | | | | | | | | | | No longer use deprecated aliases to functions: * Replace PyMem_MALLOC() with PyMem_Malloc() * Replace PyMem_REALLOC() with PyMem_Realloc() * Replace PyMem_FREE() with PyMem_Free() * Replace PyMem_Del() with PyMem_Free() * Replace PyMem_DEL() with PyMem_Free() Modify also the PyMem_DEL() macro to use directly PyMem_Free().
* bpo-1635741: Port select module to multiphase init (GH-23409)Christian Heimes2020-11-211-82/+105
|
* bpo-42152: Use PyDict_Contains and PyDict_SetDefault if appropriate. (GH-22986)Serhiy Storchaka2020-10-261-5/+8
| | | | | | | If PyDict_GetItemWithError is only used to check whether the key is in dict, it is better to use PyDict_Contains instead. And if it is used in combination with PyDict_SetItem, PyDict_SetDefault can replace the combination.
* bpo-41985: Add _PyLong_FileDescriptor_Converter and AC converter for ↵Serhiy Storchaka2020-10-091-19/+0
| | | | "fildes". (GH-22620)
* bpo-31938: Fix default-value signatures of several functions in the select ↵Anthony Sottile2020-06-231-8/+8
| | | | module (GH-21066)
* bpo-32604: Fix reference leak in select module (GH-20600)Victor Stinner2020-06-031-2/+0
| | | | Fix reference leak in PyInit_select() of the select module: remove Py_INCREF(poll_Type).
* bpo-38580: Document that select() accepts iterables, not just sequences ↵Jakub Stasiak2020-05-251-3/+3
| | | | (GH-16832)
* bpo-39740: Early declare devpoll_methods to support old compilers (GH-19281)Batuhan Taskaya2020-05-161-0/+2
|
* bpo-40268: Remove unused structmember.h includes (GH-19530)Victor Stinner2020-04-151-1/+1
| | | | | | If only offsetof() is needed: include stddef.h instead. When structmember.h is used, add a comment explaining that PyMemberDef is used.
* bpo-39968: Convert extension modules' macros of get_module_state() to inline ↵Hai Shi2020-03-161-23/+30
| | | | functions (GH-19017)
* bpo-39239: epoll.unregister() no longer ignores EBADF (GH-17882)Victor Stinner2020-01-071-5/+0
| | | | The select.epoll.unregister() method no longer ignores the EBADF error.
* Fix a compile warning in selectmodule.c. (GH-16617)Xiang Zhang2019-10-071-1/+1
|
* bpo-38116: Convert select module to PEP-384 (#15971)Dino Viehland2019-09-141-242/+207
| | | | | | | | | | * Convert select module to PEP-384 Summary: Do the necessary versions to be Pyro-compatible, including migrating `PyType_Ready` to `PyType_FromSpec` and moving static data into a new `_selectstate` struct. * 📜🤖 Added by blurb_it. * Fixup Mac OS/X build
* bpo-37337: Add _PyObject_CallMethodNoArgs() (GH-14267)Jeroen Demeyer2019-07-081-1/+1
|
* bpo-36974: tp_print -> tp_vectorcall_offset and tp_reserved -> tp_as_async ↵Jeroen Demeyer2019-05-311-10/+10
| | | | | | | | | (GH-13464) Automatically replace tp_print -> tp_vectorcall_offset tp_compare -> tp_as_async tp_reserved -> tp_as_async
* bpo-35459: Use PyDict_GetItemWithError() instead of PyDict_GetItem(). (GH-11112)Serhiy Storchaka2019-02-251-3/+5
|
* bpo-35441: Remove dead and buggy code related to PyList_SetItem(). (GH-11033)Zackery Spytz2018-12-081-8/+2
| | | | | | | | | | In _localemodule.c and selectmodule.c, remove dead code that would cause double decrefs if run. In addition, replace PyList_SetItem() with PyList_SET_ITEM() in cases where a new list is populated and there is no possibility of an error. In addition, check if the list changed size in the loop in array_array_fromlist().
* bpo-35310: Clear select() lists before returning upon EINTR (GH-10877)Oran Avraham2018-12-051-0/+4
| | | | | | select() calls are retried on EINTR (per PEP 475). However, if a timeout was provided and the deadline has passed after running the signal handlers, rlist, wlist and xlist should be cleared since select(2) left them unmodified.
* bpo-33029: Fix signatures of getter and setter functions. (GH-10746)Serhiy Storchaka2018-11-271-3/+3
| | | Fix also return type for few other functions (clear, releasebuffer).
* bpo-29386: Pass -1 to epoll_wait() when timeout is < -1 (GH-9040)Berker Peksag2018-09-111-8/+15
| | | | | | | Although the kernel accepts any negative value for timeout, the documented value to block indefinitely is -1. This commit also makes the code similar to select.poll.poll().
* bpo-34419: selectmodule.c does not compile on HP-UX due to bpo-31938 (GH-8796)Michael Osipov2018-08-171-3/+1
| | | | | | Fix compile errors reported by HP aCC by fixing bugs introduced in 6dc57e2a20c which do not cause trouble on clang or GCC. Patch by Michael Osipov.
* bpo-20260: Implement non-bitwise unsigned int converters for Argument ↵Serhiy Storchaka2018-07-261-26/+8
| | | | Clinic. (GH-8434)
* bpo-31938: Convert selectmodule.c to Argument Clinic (GH-4265)Tal Einat2018-06-301-574/+659
|
* bpo-32568: make select.epoll() and its docs consistent (#7840)Tal Einat2018-06-301-4/+6
| | | | | | | | | | | | | * `flags` is indeed deprecated, but there is a validation on its value for backwards compatibility reasons. This adds mention of this in the docs. * The docs say that `sizehint` is deprecated and ignored, but it is still used when `epoll_create1()` is unavailable. This adds mention of this in the docs. * `sizehint=-1` is acceptable again, and is replaced with `FD_SETSIZE-1`. This is needed to have a default value available at the Python level, since `FD_SETSIZE` is not exposed to Python. (see: bpo-31938) * Reject `sizehint=0` since it is invalid to pass on to `epoll_create()`. The relevant tests have also been updated.
* bpo-33012: Fix invalid function cast warnings with gcc 8 for METH_NOARGS. ↵Siddhesh Poyarekar2018-04-291-6/+6
| | | | | | | | | (GH-6030) METH_NOARGS functions need only a single argument but they are cast into a PyCFunction, which takes two arguments. This triggers an invalid function cast warning in gcc8 due to the argument mismatch. Fix this by adding a dummy unused argument.
* bpo-32747: Remove trailing spaces in docstrings. (GH-5491)oldk2018-02-021-2/+2
|
* bpo-28914: Fix compilation of select on Android (#5447)Victor Stinner2018-01-301-0/+3
| | | | | EPOLL_CLOEXEC is not defined on Android. Co-Authored-By: Wataru Matsumoto <sxsns243@gmail.com>
* bpo-23699: Use a macro to reduce boilerplate code in rich comparison ↵stratakis2017-11-021-21/+1
| | | | functions (GH-793)
* bpo-31893: Fix errors in b9052a0f91d2e83bbc27267247a5920c82b242a3. (#4196)Serhiy Storchaka2017-10-311-4/+4
| | | | | * Fix a compilation error on FreeBSD. * Fix the data attribute size on Mac OS X.
* bpo-31893: Fixed select.kqueue(). (#4166)Serhiy Storchaka2017-10-311-47/+71
| | | | * Fixed the layout of the kqueue_event structure on OpenBSD and NetBSD. * Fixed the comparison of the kqueue_event objects.
* bpo-31334: Fix timeout in select.poll.poll() (GH-3277)Riccardo Coccioli2017-10-171-9/+16
| | | | | | Always pass -1, or INFTIM where defined, to the poll() system call when a negative timeout is passed to the poll.poll([timeout]) method in the select module. Various OSes throw an error with arbitrary negative values.
* bpo-31786: Make functions in the select module blocking when timeout is a ↵Pablo Galindo2017-10-171-8/+8
| | | | small negative value. (#4003)
* bpo-30058: Fixed buffer overflow in select.kqueue.control(). (#1095)Serhiy Storchaka2017-10-121-16/+13
|
* bpo-30061: Check if PyObject_Size()/PySequence_Size()/PyMapping_Size() (#1096)Serhiy Storchaka2017-04-191-2/+2
| | | | | | raised an error. Replace them with using concrete types API that never fails if appropriate.