Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork32.3k
gh-127266: avoid data races when updating type slots#131174
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Merged
+233 −112
Merged
Changes from1 commit
Commits
Show all changes
54 commits Select commitHold shift + click to select a range
0e995ad
wip: update type slots, stop-the-world
naschemeb173f17
Remove unneeded atomics for tp_flags.
naschemed4ce112
Use stop-the-world for tp_flag changes too.
nascheme44eb332
Remove 'world_stops' and 'sys._get_world_stops'.
naschemed132fab
Improve code comments.
nascheme658bcd5
Remove TSAN suppressions that seem unneeded.
naschemeef2f07b
Add NEWS file.
naschemece8536d
Use mutex rather than critical sections.
naschemeb97a4b4
Merge 'origin/main' into gh-127266-type-slots-ts
naschemeca00e74
Fix non-debug build.
nascheme6db4542
Improve comments.
nascheme398ac14
Merge 'origin/main' into gh-127266-type-slots-ts
nascheme75d6b71
Avoid unused function warning.
nascheme895a86a
Remove unwanted suppression (bad merge).
nascheme65e40f4
Fixes based on review feedback.
naschemeb68f1a1
Remove spurious assert().
nascheme9976b32
Merge 'origin/main' into gh-127266-type-slots-ts
nascheme1b84486
Omit mutex_tid member from default build.
nascheme2af9e49
Remove Py_TPFLAGS_EXPOSED flag and related logic.
naschemef65e87c
Improve comment for TYPE_LOCK.
nascheme395a6d3
Re-add the ASSERT_NEW_OR_STOPPED() asserts.
naschemee4f87e5
Further cleanups of the locking in typeobject.
nascheme2a66555
Fix data race in resolve_slotdups().
nascheme2efac26
Fix comment.
naschemef7d2d36
Make the init of tp_dict thread-safe.
naschemef3fd35a
Do some addtional locking simplification.
nascheme57c2a44
Avoid acquiring the types mutex if version is set.
nascheme7c0ccf5
Add check_invalid_reentrancy() call.
nascheme4fa77bb
Fix additional re-entrancy issues found.
naschemecaf6554
Add comment explaining class_name() code.
nascheme803d703
Merge 'origin/main' into gh-127266-type-slots-ts
nascheme90ea541
Use atomic load to avoid thread safety issue.
nascheme0dc0faf
Fix default debug build.
nascheme956e5d1
Move declaration to avoid syntax error.
nascheme2bb710c
Remove _PyType_GetVersionForCurrentState, unused.
nascheme3a9bc96
Fix for possible re-entrancy in has_custom_mro().
naschemed742a53
Use correct FT_ATOMIC_ macro.
naschemee7480c3
Remove TSAN suppression for 'assign_version_tag'.
naschemee2ea281
Small efficiency fix for types_mutex_set_owned().
nascheme935bfca
Revert to using critical section with TYPE_LOCK.
nascheme1cff448
Merge 'origin/main' into gh-127266-type-slots-ts
naschemea81e9e3
Invalidate type cache before calling watchers.
naschemef5df0c3
Fixes for type_modified_unlocked().
nascheme7db281c
Major re-work, TYPE_LOCK protects more things.
naschemeda2a0ad
Merge 'origin/main' into gh-127266-type-slots-ts
nascheme986f23a
Fix non-debug build.
naschemec404ed4
Revert unneeded code changes.
nascheme55af4ba
Merge branch 'origin/main' into gh-127266-type-slots-ts
nascheme0eb77da
Restore comment
nascheme16f15b2
Revert more changes.
nascheme0c328cc
Merge 'origin/main' into gh-127266-type-slots-ts
nascheme64547e9
Reduce item list size for a few tests.
naschemefff1bd2
Merge 'origin/main' into gh-127266-type-slots-ts
nascheme5672352
Minor code tidy.
naschemeFile filter
Filter by extension
Conversations
Failed to load comments.
Loading
Uh oh!
There was an error while loading.Please reload this page.
Jump to
Jump to file
Failed to load files.
Loading
Uh oh!
There was an error while loading.Please reload this page.
Diff view
Diff view
Fix non-debug build.
- Loading branch information
Uh oh!
There was an error while loading.Please reload this page.
commitca00e74171ecbfce4b3dbf1b1b6b26f3db1ef776
There are no files selected for viewing
1 change: 1 addition & 0 deletionsInclude/internal/pycore_typeobject.h
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
Oops, something went wrong.
Uh oh!
There was an error while loading.Please reload this page.
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.