https://github.com/python/cpython/commit/2b163aa9e796b312bb0549d49145d26e4904768e
commit: 2b163aa9e796b312bb0549d49145d26e4904768e
branch: main
author: Sam Gross <[email protected]>
committer: colesbury <[email protected]>
date: 2024-07-30T13:53:47-04:00
summary:
gh-117657: Avoid race in `PAUSE_ADAPTIVE_COUNTER` in free-threaded build
(#122190)
The adaptive counter doesn't do anything currently in the free-threaded
build and TSan reports a data race due to concurrent modifications to
the counter.
files:
M Python/ceval_macros.h
M Tools/tsan/suppressions_free_threading.txt
diff --git a/Python/ceval_macros.h b/Python/ceval_macros.h
index 60efe3d78ff22c..2881ed2153a7c1 100644
--- a/Python/ceval_macros.h
+++ b/Python/ceval_macros.h
@@ -316,17 +316,18 @@ GETITEM(PyObject *v, Py_ssize_t i) {
/* gh-115999 tracks progress on addressing this. */ \
static_assert(0, "The specializing interpreter is not yet
thread-safe"); \
} while (0);
+#define PAUSE_ADAPTIVE_COUNTER(COUNTER) ((void)COUNTER)
#else
#define ADVANCE_ADAPTIVE_COUNTER(COUNTER) \
do { \
(COUNTER) = advance_backoff_counter((COUNTER)); \
} while (0);
-#endif
#define PAUSE_ADAPTIVE_COUNTER(COUNTER) \
do { \
(COUNTER) = pause_backoff_counter((COUNTER)); \
} while (0);
+#endif
#define UNBOUNDLOCAL_ERROR_MSG \
"cannot access local variable '%s' where it is not associated with a value"
diff --git a/Tools/tsan/suppressions_free_threading.txt
b/Tools/tsan/suppressions_free_threading.txt
index a54e66d1212d1f..78449aed4009d3 100644
--- a/Tools/tsan/suppressions_free_threading.txt
+++ b/Tools/tsan/suppressions_free_threading.txt
@@ -23,7 +23,6 @@ race:free_threadstate
# These warnings trigger directly in a CPython function.
-race_top:_PyEval_EvalFrameDefault
race_top:assign_version_tag
race_top:new_reference
race_top:_multiprocessing_SemLock_acquire_impl
_______________________________________________
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]