https://github.com/python/cpython/commit/829cdf06d4f40b0774a5a13f9e6023f3e29bf44d
commit: 829cdf06d4f40b0774a5a13f9e6023f3e29bf44d
branch: 3.12
author: Serhiy Storchaka <[email protected]>
committer: gpshead <[email protected]>
date: 2024-10-02T11:02:14-07:00
summary:
[3.12] gh-123978: Remove broken time.thread_time() on NetBSD (GH-124116)
(GH-124427)
(cherry picked from commit e670a113b5e1fcc3ce3bb9b5b4b1f126264ae21b)
files:
A Misc/NEWS.d/next/Library/2024-09-16-12-31-48.gh-issue-123978.z3smEu.rst
M Modules/timemodule.c
diff --git
a/Misc/NEWS.d/next/Library/2024-09-16-12-31-48.gh-issue-123978.z3smEu.rst
b/Misc/NEWS.d/next/Library/2024-09-16-12-31-48.gh-issue-123978.z3smEu.rst
new file mode 100644
index 00000000000000..e5b3229122b509
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2024-09-16-12-31-48.gh-issue-123978.z3smEu.rst
@@ -0,0 +1 @@
+Remove broken :func:`time.thread_time` and :func:`time.thread_time_ns` on
NetBSD.
diff --git a/Modules/timemodule.c b/Modules/timemodule.c
index 8613fccfe02249..b10f8c7c939550 100644
--- a/Modules/timemodule.c
+++ b/Modules/timemodule.c
@@ -1292,8 +1292,14 @@ _PyTime_GetProcessTimeWithInfo(_PyTime_t *tp,
_Py_clock_info_t *info)
#else
/* clock_gettime */
+// gh-115714: Don't use CLOCK_PROCESS_CPUTIME_ID on WASI.
+/* CLOCK_PROF is defined on NetBSD, but not supported.
+ * CLOCK_PROCESS_CPUTIME_ID is broken on NetBSD for the same reason as
+ * CLOCK_THREAD_CPUTIME_ID (see comment below).
+ */
#if defined(HAVE_CLOCK_GETTIME) \
- && (defined(CLOCK_PROCESS_CPUTIME_ID) || defined(CLOCK_PROF))
+ && (defined(CLOCK_PROCESS_CPUTIME_ID) || defined(CLOCK_PROF)) \
+ && !defined(__NetBSD__)
struct timespec ts;
if (HAVE_CLOCK_GETTIME_RUNTIME) {
@@ -1499,9 +1505,16 @@ _PyTime_GetThreadTimeWithInfo(_PyTime_t *tp,
_Py_clock_info_t *info)
return 0;
}
+/* CLOCK_THREAD_CPUTIME_ID is broken on NetBSD: the result of clock_gettime()
+ * includes the sleeping time, that defeats the purpose of the clock.
+ * Also, clock_getres() does not support it.
+ * https://github.com/python/cpython/issues/123978
+ * https://gnats.netbsd.org/57512
+ */
#elif defined(HAVE_CLOCK_GETTIME) && \
- defined(CLOCK_PROCESS_CPUTIME_ID) && \
- !defined(__EMSCRIPTEN__) && !defined(__wasi__)
+ defined(CLOCK_THREAD_CPUTIME_ID) && \
+ !defined(__EMSCRIPTEN__) && !defined(__wasi__) && \
+ !defined(__NetBSD__)
#define HAVE_THREAD_TIME
#if defined(__APPLE__) && defined(__has_attribute) &&
__has_attribute(availability)
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]