https://github.com/python/cpython/commit/0d5238373daea2672b56f0dae58acf158cc9aa27
commit: 0d5238373daea2672b56f0dae58acf158cc9aa27
branch: main
author: mpage <[email protected]>
committer: colesbury <[email protected]>
date: 2024-04-15T12:17:55-04:00
summary:

gh-117657: Quiet more TSAN warnings due to incorrect modeling of 
compare/exchange (#117830)

files:
M Python/pystate.c

diff --git a/Python/pystate.c b/Python/pystate.c
index 50454020b8fcab..ac38866d301d59 100644
--- a/Python/pystate.c
+++ b/Python/pystate.c
@@ -2003,7 +2003,7 @@ tstate_try_attach(PyThreadState *tstate)
 static void
 tstate_set_detached(PyThreadState *tstate, int detached_state)
 {
-    assert(tstate->state == _Py_THREAD_ATTACHED);
+    assert(_Py_atomic_load_int_relaxed(&tstate->state) == _Py_THREAD_ATTACHED);
 #ifdef Py_GIL_DISABLED
     _Py_atomic_store_int(&tstate->state, detached_state);
 #else
@@ -2068,7 +2068,7 @@ static void
 detach_thread(PyThreadState *tstate, int detached_state)
 {
     // XXX assert(tstate_is_alive(tstate) && tstate_is_bound(tstate));
-    assert(tstate->state == _Py_THREAD_ATTACHED);
+    assert(_Py_atomic_load_int_relaxed(&tstate->state) == _Py_THREAD_ATTACHED);
     assert(tstate == current_fast_get());
     if (tstate->critical_section != 0) {
         _PyCriticalSection_SuspendAll(tstate);

_______________________________________________
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]

Reply via email to