gh-113791: Expose CLOCK_MONOTONIC_RAW_APPROX and CLOCK_UPTIME_RAW_APROX on macOS in the time module (#113792)

This commit is contained in:
Ronald Oussoren 2024-01-08 20:44:00 +01:00 committed by GitHub
parent b3dba18eab
commit c6ca562138
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 30 additions and 6 deletions

View File

@ -840,6 +840,15 @@ These constants are used as parameters for :func:`clock_getres` and
.. versionadded:: 3.3
.. data:: CLOCK_MONOTONIC_RAW_APPROX
Similar to :data:`CLOCK_MONOTONIC_RAW`, but reads a value cached by
the system at context switch and hence has less accuracy.
.. availability:: macOS >= 10.12.
.. versionadded:: 3.13
.. data:: CLOCK_PROCESS_CPUTIME_ID
@ -899,6 +908,15 @@ These constants are used as parameters for :func:`clock_getres` and
.. versionadded:: 3.8
.. data:: CLOCK_UPTIME_RAW_APPROX
Like :data:`CLOCK_UPTIME_RAW`, but the value is cached by the system
at context switches and therefore has less accuracy.
.. availability:: macOS >= 10.12.
.. versionadded:: 3.13
The following constant is the only parameter that can be sent to
:func:`clock_settime`.

View File

@ -0,0 +1,2 @@
Add ``CLOCK_MONOTONIC_RAW_APPROX`` and ``CLOCK_UPTIME_RAW_APPROX`` to
:mod:`time` on macOS. These are clocks available on macOS 10.12 or later.

View File

@ -1993,20 +1993,16 @@ time_exec(PyObject *module)
return -1;
}
#endif
#ifdef CLOCK_MONOTONIC
if (PyModule_AddIntMacro(module, CLOCK_MONOTONIC) < 0) {
return -1;
}
#endif
#ifdef CLOCK_MONOTONIC_RAW
if (PyModule_AddIntMacro(module, CLOCK_MONOTONIC_RAW) < 0) {
return -1;
}
#endif
#ifdef CLOCK_HIGHRES
if (PyModule_AddIntMacro(module, CLOCK_HIGHRES) < 0) {
return -1;
@ -2017,7 +2013,6 @@ time_exec(PyObject *module)
return -1;
}
#endif
#ifdef CLOCK_THREAD_CPUTIME_ID
if (PyModule_AddIntMacro(module, CLOCK_THREAD_CPUTIME_ID) < 0) {
return -1;
@ -2044,10 +2039,19 @@ time_exec(PyObject *module)
}
#endif
#ifdef CLOCK_UPTIME_RAW
if (PyModule_AddIntMacro(module, CLOCK_UPTIME_RAW) < 0) {
return -1;
}
#endif
#ifdef CLOCK_MONOTONIC_RAW_APPROX
if (PyModule_AddIntMacro(module, CLOCK_MONOTONIC_RAW_APPROX) < 0) {
return -1;
}
#endif
#ifdef CLOCK_UPTIME_RAW_APPROX
if (PyModule_AddIntMacro(module, CLOCK_UPTIME_RAW_APPROX) < 0) {
return -1;
}
#endif
}