summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Doc/library/os.rst17
-rw-r--r--Doc/whatsnew/3.12.rst7
-rw-r--r--Misc/NEWS.d/next/Library/2022-05-28-08-02-55.gh-issue-93312.HY0Uzj.rst3
-rw-r--r--Modules/posixmodule.c3
4 files changed, 26 insertions, 4 deletions
diff --git a/Doc/library/os.rst b/Doc/library/os.rst
index dc0f2e4..1f434a1 100644
--- a/Doc/library/os.rst
+++ b/Doc/library/os.rst
@@ -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)
diff --git a/Doc/whatsnew/3.12.rst b/Doc/whatsnew/3.12.rst
index 8a73097..7c560d7 100644
--- a/Doc/whatsnew/3.12.rst
+++ b/Doc/whatsnew/3.12.rst
@@ -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
=============
diff --git a/Misc/NEWS.d/next/Library/2022-05-28-08-02-55.gh-issue-93312.HY0Uzj.rst b/Misc/NEWS.d/next/Library/2022-05-28-08-02-55.gh-issue-93312.HY0Uzj.rst
new file mode 100644
index 0000000..f11d04f
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2022-05-28-08-02-55.gh-issue-93312.HY0Uzj.rst
@@ -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.
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 0a72aca..6883ad0 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -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;