mirror of https://github.com/python/cpython
gh-117657: Quiet TSAN warning about a data race between `start_the_world()` and `tstate_try_attach()` (#117828)
TSAN erroneously reports a data race between the `_Py_atomic_compare_exchange_int` on `tstate->state` in `tstate_try_attach()` and the non-atomic load of `tstate->state` in `start_the_world`. The `_Py_atomic_compare_exchange_int` fails, but TSAN erroneously treats it as a store.
This commit is contained in:
parent
47832067da
commit
6e0b327690
|
@ -2248,7 +2248,8 @@ start_the_world(struct _stoptheworld_state *stw)
|
|||
PyThreadState *t;
|
||||
_Py_FOR_EACH_THREAD(stw, i, t) {
|
||||
if (t != stw->requester) {
|
||||
assert(t->state == _Py_THREAD_SUSPENDED);
|
||||
assert(_Py_atomic_load_int_relaxed(&t->state) ==
|
||||
_Py_THREAD_SUSPENDED);
|
||||
_Py_atomic_store_int(&t->state, _Py_THREAD_DETACHED);
|
||||
_PyParkingLot_UnparkAll(&t->state);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue