gh-117657: Quiet TSAN warnings about remaining non-atomic accesses of tstate->state
#118165
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
These should be the last instances of TSAN warning of data races when accessing
tstate->state
non-atomically.TSAN reports a race (example) between accessing
tstate->state
in_PyThreadState_Suspend()
:cpython/Python/pystate.c
Line 2099 in fc21c7f
and the compare/exchange in
park_detached_threads()
:cpython/Python/pystate.c
Lines 2172 to 2173 in fc21c7f
This is a false positive due to TSAN modeling failed compare/exchange operations as writes.
TSAN also reports a race (example) between accessing
tstate->state
in_PySemaphore_Wait()
:cpython/Python/parking_lot.c
Line 197 in fc21c7f
and the compare/exchange in
park_detached_threads()
above. This is the same issue that we saw in gh-117830.