]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
GH-93312: Add os.PIDFD_NONBLOCK flag (#93313)
authorKumar Aditya <59607654+kumaraditya303@users.noreply.github.com>
Tue, 31 May 2022 10:51:29 +0000 (16:21 +0530)
committerGitHub <noreply@github.com>
Tue, 31 May 2022 10:51:29 +0000 (12:51 +0200)
Doc/library/os.rst
Doc/whatsnew/3.12.rst
Misc/NEWS.d/next/Library/2022-05-28-08-02-55.gh-issue-93312.HY0Uzj.rst [new file with mode: 0644]
Modules/posixmodule.c

index dc0f2e4158ac0e1cbccbe3c6db2495c62bb2e388..1f434a1c5b62fbc13908ea461d9cceef3651d9cf 100644 (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)
 
index 8a7309726ed2acd7df21574e1ea1bef04f355c50..7c560d73a5fc6f655e6c5b69b40d426c1b791120 100644 (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
 =============
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 (file)
index 0000000..f11d04f
--- /dev/null
@@ -0,0 +1,3 @@
+Add :data:`os.PIDFD_NONBLOCK` flag to open a file descriptor\r
+for a process with :func:`os.pidfd_open` in non-blocking mode.\r
+Patch by Kumar Aditya.\r
index 0a72aca8d51fa25100d6097507dc44699eb381bd..6883ad0c12ccf1d76a5d73fe27e8966224a3e099 100644 (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;