GH-93312: Add os.PIDFD_NONBLOCK flag (#93313)

This commit is contained in:
Kumar Aditya 2022-05-31 16:21:29 +05:30 committed by GitHub
parent f545fc955a
commit a565ab0fd5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 26 additions and 4 deletions

View File

@ -3897,16 +3897,25 @@ written in Python, such as a mail server's external command delivery program.
.. function:: pidfd_open(pid, flags=0)
Return a file descriptor referring to the process *pid*. This descriptor can
be used to perform process management without races and signals. The *flags*
argument is provided for future extensions; no flag values are currently
defined.
Return a file descriptor referring to the process *pid* with *flags* set.
This descriptor can be used to perform process management without races
and signals.
See the :manpage:`pidfd_open(2)` man page for more details.
.. availability:: Linux 5.3+
.. versionadded:: 3.9
.. data:: PIDFD_NONBLOCK
This flag indicates that the file descriptor will be non-blocking.
If the process referred to by the file descriptor has not yet terminated,
then an attempt to wait on the file descriptor using :manpage:`waitid(2)`
will immediately return the error :data:`~errno.EAGAIN` rather than blocking.
.. availability:: Linux 5.10+
.. versionadded:: 3.12
.. function:: plock(op)

View File

@ -90,6 +90,13 @@ New Modules
Improved Modules
================
os
--
* Add :data:`os.PIDFD_NONBLOCK` to open a file descriptor
for a process with :func:`os.pidfd_open` in non-blocking mode.
(Contributed by Kumar Aditya in :gh:`93312`.)
Optimizations
=============

View File

@ -0,0 +1,3 @@
Add :data:`os.PIDFD_NONBLOCK` flag to open a file descriptor
for a process with :func:`os.pidfd_open` in non-blocking mode.
Patch by Kumar Aditya.

View File

@ -15255,6 +15255,9 @@ all_ins(PyObject *m)
#ifdef P_PIDFD
if (PyModule_AddIntMacro(m, P_PIDFD)) return -1;
#endif
#ifdef PIDFD_NONBLOCK
if (PyModule_AddIntMacro(m, PIDFD_NONBLOCK)) return -1;
#endif
#endif
#ifdef WEXITED
if (PyModule_AddIntMacro(m, WEXITED)) return -1;