gh-113536: Expose os.waitid on macOS (#113542)

* gh-113536: Expose `os.waitid` on macOS

This API has been available on macOS for a long time, but was
explicitly excluded due to unspecified problems with the API
in ancient versions of macOS.

* Document that the API is available on macOS starting in Python 3.13
This commit is contained in:
Ronald Oussoren 2024-01-01 19:38:29 +01:00 committed by GitHub
parent 5f3cc90a12
commit d0b0e3d2ef
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 14 additions and 13 deletions

View file

@ -1024,7 +1024,7 @@ typedef struct {
PyObject *TerminalSizeType;
PyObject *TimesResultType;
PyObject *UnameResultType;
#if defined(HAVE_WAITID) && !defined(__APPLE__)
#if defined(HAVE_WAITID)
PyObject *WaitidResultType;
#endif
#if defined(HAVE_WAIT3) || defined(HAVE_WAIT4)
@ -2292,7 +2292,7 @@ static PyStructSequence_Desc statvfs_result_desc = {
10
};
#if defined(HAVE_WAITID) && !defined(__APPLE__)
#if defined(HAVE_WAITID)
PyDoc_STRVAR(waitid_result__doc__,
"waitid_result: Result from waitid.\n\n\
This object may be accessed either as a tuple of\n\
@ -2367,7 +2367,7 @@ _posix_clear(PyObject *module)
Py_CLEAR(state->TerminalSizeType);
Py_CLEAR(state->TimesResultType);
Py_CLEAR(state->UnameResultType);
#if defined(HAVE_WAITID) && !defined(__APPLE__)
#if defined(HAVE_WAITID)
Py_CLEAR(state->WaitidResultType);
#endif
#if defined(HAVE_WAIT3) || defined(HAVE_WAIT4)
@ -2392,7 +2392,7 @@ _posix_traverse(PyObject *module, visitproc visit, void *arg)
Py_VISIT(state->TerminalSizeType);
Py_VISIT(state->TimesResultType);
Py_VISIT(state->UnameResultType);
#if defined(HAVE_WAITID) && !defined(__APPLE__)
#if defined(HAVE_WAITID)
Py_VISIT(state->WaitidResultType);
#endif
#if defined(HAVE_WAIT3) || defined(HAVE_WAIT4)
@ -9518,7 +9518,7 @@ os_wait4_impl(PyObject *module, pid_t pid, int options)
#endif /* HAVE_WAIT4 */
#if defined(HAVE_WAITID) && !defined(__APPLE__)
#if defined(HAVE_WAITID)
/*[clinic input]
os.waitid
@ -9575,7 +9575,7 @@ os_waitid_impl(PyObject *module, idtype_t idtype, id_t id, int options)
return result;
}
#endif /* defined(HAVE_WAITID) && !defined(__APPLE__) */
#endif /* defined(HAVE_WAITID) */
#if defined(HAVE_WAITPID)
@ -17309,7 +17309,7 @@ posixmodule_exec(PyObject *m)
return -1;
}
#if defined(HAVE_WAITID) && !defined(__APPLE__)
#if defined(HAVE_WAITID)
waitid_result_desc.name = MODNAME ".waitid_result";
state->WaitidResultType = (PyObject *)PyStructSequence_NewType(&waitid_result_desc);
if (PyModule_AddObjectRef(m, "waitid_result", state->WaitidResultType) < 0) {