René's URL Explorer Experiment


Title: gh-127266: avoid data races when updating type slots by nascheme · Pull Request #131174 · python/cpython · GitHub

Open Graph Title: gh-127266: avoid data races when updating type slots by nascheme · Pull Request #131174 · python/cpython

X Title: gh-127266: avoid data races when updating type slots by nascheme · Pull Request #131174 · python/cpython

Description: Avoid data races when updating type slots and type flags by "stopping-the-world" first. This is only needed if the type is potentially exposed to multiple threads. There are a couple places this happens: type_setattro() when the assigned item is a "dunder" method that corresponds to one or more slot assigning to __bases__ _abc.c calling _PyType_SetFlags() to set the collection flags (SEQUENCE or MAPPING) Two examples of code that causes this: dataclasses will assign dunder methods after the type object has been created, when the decorator runs. That triggers this and since the slots are assigned one-by-one, we stop for each assignment. Not great. Another example is unittest MagicMock. Again, it assigns dunder methods after the class is defined. In order to assess the performance impact of this change, I've measured the following things. The time it takes to run the unit test suite does not seem significantly worse, even when running tests serially using -j 1. Comparing the pyperformance results before and after this change shows no significant change. See link below for the chart. Running with TSAN enabled and running the --tsan and --tsan-parallel --parallel-threads=4 tests show no warnings. I also have a modified pyperformance test suite that I can run in parallel and that shows no TSAN warnings related to this as well. Additional changes after feedback from Sam: Replace the critical sections that use TYPE_LOCK with a simple mutex instead. To avoid dead-locks, the code was analyzed for re-entrancy and adjusted as needed. There are a couple places where the mutex is dropped before calling something that's possibly re-entrant. Remove some locking where it is not needed. Slots can only be changed when the world is stopped (e.g. reading tp_mro no longer needs to hold the lock). Create type_lookup_ex() as a lower-level version of _PyType_LookupStackRefAndVersion that optionally acquires the TYPE_LOCK or requires that it is already held. Add a new type flag that is used for debug enabled builds. It tries to check if a type is potentially exposed to multiple threads (and therefore needs stop-the-world before modifying slots). This flag could perhaps be removed before the final merge of this PR (since type flag bits are kind of in short supply). Benchmark using pyperformance Issue: gh-127266

Open Graph Description: Avoid data races when updating type slots and type flags by "stopping-the-world" first. This is only needed if the type is potentially exposed to multiple threads. There are a couple pl...

X Description: Avoid data races when updating type slots and type flags by "stopping-the-world" first. This is only needed if the type is potentially exposed to multiple threads. There are a c...

Opengraph URL: https://github.com/python/cpython/pull/131174

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:78da256d-bc24-9fac-a30d-beeee82e4a6d
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-id8EDA:2ADBE8:CB2CD7:128D957:6A560CC2
html-safe-noncef1cd3ae282908da22297b7d8cda4aa1ff4c4344f2108eb6069a61777acbacfd3
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4RURBOjJBREJFODpDQjJDRDc6MTI4RDk1Nzo2QTU2MENDMiIsInZpc2l0b3JfaWQiOiIzMTAwNjExMTY1NjM1ODczOTg2IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0=
visitor-hmac2b9bc48becec7ad1f7b38f21a90676e32462aeca538268ef387a7aa439bcd263
hovercard-subject-tagpull_request:2389510953
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/python/cpython/pull/131174/files
twitter:imagehttps://avatars.githubusercontent.com/u/690853?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/690853?s=400&v=4
og:image:altAvoid data races when updating type slots and type flags by "stopping-the-world" first. This is only needed if the type is potentially exposed to multiple threads. There are a couple pl...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
Nonef4368738fc918fecd9b3958f6b49218bbe60d4185f38e72e3954e11f1ad0213a
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/python/cpython git https://github.com/python/cpython.git
octolytics-dimension-user_id1525981
octolytics-dimension-user_loginpython
octolytics-dimension-repository_id81598961
octolytics-dimension-repository_nwopython/cpython
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id81598961
octolytics-dimension-repository_network_root_nwopython/cpython
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release85a7179838b41e8b23f939d3b67b53f752ecfc54
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/python/cpython/pull/131174/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fpull%2F131174%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/open-source/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/open-source/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fpull%2F131174%2Ffiles
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=python%2Fcpython
Reloadhttps://github.com/python/cpython/pull/131174/files
Reloadhttps://github.com/python/cpython/pull/131174/files
Reloadhttps://github.com/python/cpython/pull/131174/files
Please reload this pagehttps://github.com/python/cpython/pull/131174/files
python https://github.com/python
cpythonhttps://github.com/python/cpython
Please reload this pagehttps://github.com/python/cpython/pull/131174/files
Notifications https://github.com/login?return_to=%2Fpython%2Fcpython
Fork 35k https://github.com/login?return_to=%2Fpython%2Fcpython
Star 73.8k https://github.com/login?return_to=%2Fpython%2Fcpython
Code https://github.com/python/cpython
Issues 5k+ https://github.com/python/cpython/issues
Pull requests 2.3k https://github.com/python/cpython/pulls
Actions https://github.com/python/cpython/actions
Projects https://github.com/python/cpython/projects
Security and quality 0 https://github.com/python/cpython/security
Insights https://github.com/python/cpython/pulse
Code https://github.com/python/cpython
Issues https://github.com/python/cpython/issues
Pull requests https://github.com/python/cpython/pulls
Actions https://github.com/python/cpython/actions
Projects https://github.com/python/cpython/projects
Security and quality https://github.com/python/cpython/security
Insights https://github.com/python/cpython/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fpython%2Fcpython%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fpython%2Fcpython%2Fissues%2Fnew%2Fchoose
naschemehttps://github.com/nascheme
python:mainhttps://github.com/python/cpython/tree/main
nascheme:gh-127266-type-slots-tshttps://github.com/nascheme/cpython/tree/gh-127266-type-slots-ts
Conversation 57 https://github.com/python/cpython/pull/131174
Commits 54 https://github.com/python/cpython/pull/131174/commits
Checks 0 https://github.com/python/cpython/pull/131174/checks
Files changed https://github.com/python/cpython/pull/131174/files
Please reload this pagehttps://github.com/python/cpython/pull/131174/files
gh-127266: avoid data races when updating type slots https://github.com/python/cpython/pull/131174/files#top
Show all changes 54 commits https://github.com/python/cpython/pull/131174/files
0e995ad wip: update type slots, stop-the-world nascheme Mar 12, 2025 https://github.com/python/cpython/pull/131174/commits/0e995ad361ec91755581bb06693fba9d0bf6c49e
b173f17 Remove unneeded atomics for tp_flags. nascheme Mar 13, 2025 https://github.com/python/cpython/pull/131174/commits/b173f1769c638f21c100e55aefc5e0e60cc84609
d4ce112 Use stop-the-world for tp_flag changes too. nascheme Mar 13, 2025 https://github.com/python/cpython/pull/131174/commits/d4ce112310c8bfe2683a2ccedc4323ec591c771f
44eb332 Remove 'world_stops' and 'sys._get_world_stops'. nascheme Mar 14, 2025 https://github.com/python/cpython/pull/131174/commits/44eb332fd5754f00cdd7c30de890738e1167580e
d132fab Improve code comments. nascheme Mar 14, 2025 https://github.com/python/cpython/pull/131174/commits/d132fab96784d297d30250d2c92c431651058ef2
658bcd5 Remove TSAN suppressions that seem unneeded. nascheme Mar 14, 2025 https://github.com/python/cpython/pull/131174/commits/658bcd52ab4a85134bed94eb6f30ce94a03924f7
ef2f07b Add NEWS file. nascheme Mar 14, 2025 https://github.com/python/cpython/pull/131174/commits/ef2f07b47475faeb631f8ac89f8bc4eec865e6ed
ce8536d Use mutex rather than critical sections. nascheme Mar 22, 2025 https://github.com/python/cpython/pull/131174/commits/ce8536db3f59037a44db845f148e9610dfd080ad
b97a4b4 Merge 'origin/main' into gh-127266-type-slots-ts nascheme Mar 26, 2025 https://github.com/python/cpython/pull/131174/commits/b97a4b4271069a4d5d53f1fd2c09e60612311fe4
ca00e74 Fix non-debug build. nascheme Mar 26, 2025 https://github.com/python/cpython/pull/131174/commits/ca00e74171ecbfce4b3dbf1b1b6b26f3db1ef776
6db4542 Improve comments. nascheme Mar 26, 2025 https://github.com/python/cpython/pull/131174/commits/6db454246303204720c25fe5b5784793d184e36d
398ac14 Merge 'origin/main' into gh-127266-type-slots-ts nascheme Mar 27, 2025 https://github.com/python/cpython/pull/131174/commits/398ac148137982eab7f3b712211c9c72ac69d071
75d6b71 Avoid unused function warning. nascheme Mar 27, 2025 https://github.com/python/cpython/pull/131174/commits/75d6b71a0169539c1a798c425c053127b35b046c
895a86a Remove unwanted suppression (bad merge). nascheme Mar 31, 2025 https://github.com/python/cpython/pull/131174/commits/895a86a6a85a30892500d42f6d84a29a94afd363
65e40f4 Fixes based on review feedback. nascheme Mar 31, 2025 https://github.com/python/cpython/pull/131174/commits/65e40f4856b460e2212ac4f7b6978371e5222f22
b68f1a1 Remove spurious assert(). nascheme Mar 31, 2025 https://github.com/python/cpython/pull/131174/commits/b68f1a13e306791bf79891a414dfd2a0b3a7ac5c
9976b32 Merge 'origin/main' into gh-127266-type-slots-ts nascheme Apr 1, 2025 https://github.com/python/cpython/pull/131174/commits/9976b32629f1e0189ab448bf36b28e1c86a84fcd
1b84486 Omit mutex_tid member from default build. nascheme Apr 1, 2025 https://github.com/python/cpython/pull/131174/commits/1b844867741c2d831fa6fd5d90dcaada0070c8ff
2af9e49 Remove Py_TPFLAGS_EXPOSED flag and related logic. nascheme Apr 1, 2025 https://github.com/python/cpython/pull/131174/commits/2af9e4954d8cf58481203e21ce4185d1293209f4
f65e87c Improve comment for TYPE_LOCK. nascheme Apr 1, 2025 https://github.com/python/cpython/pull/131174/commits/f65e87c3a787c5d270499b3ec6d8e2b5b0d58a20
395a6d3 Re-add the ASSERT_NEW_OR_STOPPED() asserts. nascheme Apr 1, 2025 https://github.com/python/cpython/pull/131174/commits/395a6d3de63dbd9e98d77f17acbb7b3169864d98
e4f87e5 Further cleanups of the locking in typeobject. nascheme Apr 3, 2025 https://github.com/python/cpython/pull/131174/commits/e4f87e57289e5572c20a22285f8f128023667189
2a66555 Fix data race in resolve_slotdups(). nascheme Apr 3, 2025 https://github.com/python/cpython/pull/131174/commits/2a6655564533916aae0ec57e4564ee4b8b2c8820
2efac26 Fix comment. nascheme Apr 3, 2025 https://github.com/python/cpython/pull/131174/commits/2efac2655b371511e146ae6465666c920dc6ac50
f7d2d36 Make the init of tp_dict thread-safe. nascheme Apr 9, 2025 https://github.com/python/cpython/pull/131174/commits/f7d2d36599e277b144881072f162e9b15800c31f
f3fd35a Do some addtional locking simplification. nascheme Apr 9, 2025 https://github.com/python/cpython/pull/131174/commits/f3fd35a552728ab35b5af9afe34d6199c565cbd8
57c2a44 Avoid acquiring the types mutex if version is set. nascheme Apr 10, 2025 https://github.com/python/cpython/pull/131174/commits/57c2a44171a7c03006234f8f32c8fd6a02336af7
7c0ccf5 Add check_invalid_reentrancy() call. nascheme Apr 17, 2025 https://github.com/python/cpython/pull/131174/commits/7c0ccf548cba35ef44a4a1dbc1e5015ccc5f3264
4fa77bb Fix additional re-entrancy issues found. nascheme Apr 17, 2025 https://github.com/python/cpython/pull/131174/commits/4fa77bb11c40c3c35f47a4f371baed5642dce498
caf6554 Add comment explaining class_name() code. nascheme Apr 17, 2025 https://github.com/python/cpython/pull/131174/commits/caf6554415ef00e3f819b49752b50d6d2f5835a8
803d703 Merge 'origin/main' into gh-127266-type-slots-ts nascheme Apr 17, 2025 https://github.com/python/cpython/pull/131174/commits/803d703ece44d2fd38c3444b0eb3e1ce859ab759
90ea541 Use atomic load to avoid thread safety issue. nascheme Apr 17, 2025 https://github.com/python/cpython/pull/131174/commits/90ea541dceddfae060ac889ee5d06da68e1e4f1f
0dc0faf Fix default debug build. nascheme Apr 17, 2025 https://github.com/python/cpython/pull/131174/commits/0dc0faf4c71a523a4fcdb962231766ff48afa881
956e5d1 Move declaration to avoid syntax error. nascheme Apr 17, 2025 https://github.com/python/cpython/pull/131174/commits/956e5d1bb447f64bd54f05183d9fa59226e13354
2bb710c Remove _PyType_GetVersionForCurrentState, unused. nascheme Apr 21, 2025 https://github.com/python/cpython/pull/131174/commits/2bb710c6d7930cc603062a1f40fc568eb3a95a6f
3a9bc96 Fix for possible re-entrancy in has_custom_mro(). nascheme Apr 21, 2025 https://github.com/python/cpython/pull/131174/commits/3a9bc96bc5682ff773bb2e6bd88db1fbb48e9775
d742a53 Use correct FT_ATOMIC_ macro. nascheme Apr 21, 2025 https://github.com/python/cpython/pull/131174/commits/d742a53d6711deb0d140e29fb9a90c128ff9412b
e7480c3 Remove TSAN suppression for 'assign_version_tag'. nascheme Apr 21, 2025 https://github.com/python/cpython/pull/131174/commits/e7480c348b3b52fc21b9b56261eb1b1d70112213
e2ea281 Small efficiency fix for types_mutex_set_owned(). nascheme Apr 21, 2025 https://github.com/python/cpython/pull/131174/commits/e2ea2819a344982ff8abea479e0f7004b9099690
935bfca Revert to using critical section with TYPE_LOCK. nascheme Apr 21, 2025 https://github.com/python/cpython/pull/131174/commits/935bfcacdb6f1dd47804e930515cc9f346683fdd
1cff448 Merge 'origin/main' into gh-127266-type-slots-ts nascheme Apr 21, 2025 https://github.com/python/cpython/pull/131174/commits/1cff44842529110994e3ded5923cdba039f38619
a81e9e3 Invalidate type cache before calling watchers. nascheme Apr 21, 2025 https://github.com/python/cpython/pull/131174/commits/a81e9e395335c1cdf9e9ec41dcb1808d92836fba
f5df0c3 Fixes for type_modified_unlocked(). nascheme Apr 22, 2025 https://github.com/python/cpython/pull/131174/commits/f5df0c3a05afdff894d431b47c2d03c49f6cac94
7db281c Major re-work, TYPE_LOCK protects more things. nascheme Apr 22, 2025 https://github.com/python/cpython/pull/131174/commits/7db281c7e04c0ab4e722089910021e98b5c65a3e
da2a0ad Merge 'origin/main' into gh-127266-type-slots-ts nascheme Apr 23, 2025 https://github.com/python/cpython/pull/131174/commits/da2a0ad2d26e636b2945ea6d1c5d264e79fd4efe
986f23a Fix non-debug build. nascheme Apr 23, 2025 https://github.com/python/cpython/pull/131174/commits/986f23a7e959a3037a500a6c5c1d0e0fea0a9da7
c404ed4 Revert unneeded code changes. nascheme Apr 23, 2025 https://github.com/python/cpython/pull/131174/commits/c404ed4b19c3b85e82c1b8e6812940e96a6e5a40
55af4ba Merge branch 'origin/main' into gh-127266-type-slots-ts nascheme Apr 23, 2025 https://github.com/python/cpython/pull/131174/commits/55af4ba614f4355b5771ab4d6755a8cb523281ad
0eb77da Restore comment nascheme Apr 24, 2025 https://github.com/python/cpython/pull/131174/commits/0eb77da532b67d760c76213228e815a395453be3
16f15b2 Revert more changes. nascheme Apr 24, 2025 https://github.com/python/cpython/pull/131174/commits/16f15b2e3b62c8c95694796293927bfbbbacf183
0c328cc Merge 'origin/main' into gh-127266-type-slots-ts nascheme Apr 25, 2025 https://github.com/python/cpython/pull/131174/commits/0c328ccb8ef37cb95af709f6e9061cab32996de3
64547e9 Reduce item list size for a few tests. nascheme Apr 25, 2025 https://github.com/python/cpython/pull/131174/commits/64547e9b7fb4a9605062fdcbe026474581e0c198
fff1bd2 Merge 'origin/main' into gh-127266-type-slots-ts nascheme Apr 28, 2025 https://github.com/python/cpython/pull/131174/commits/fff1bd21ef313f501e61b45eb7d7ce479c4beb3f
5672352 Minor code tidy. nascheme Apr 28, 2025 https://github.com/python/cpython/pull/131174/commits/5672352f32bf90fd1a9ff3e2a0bc0c4101c95915
Clear filters https://github.com/python/cpython/pull/131174/files
Please reload this pagehttps://github.com/python/cpython/pull/131174/files
Please reload this pagehttps://github.com/python/cpython/pull/131174/files
pycore_interp_structs.h https://github.com/python/cpython/pull/131174/files#diff-6075b6142803c1eccc213aa150704fd639443c65311d5999f69a5ea77cb76756
pycore_object.h https://github.com/python/cpython/pull/131174/files#diff-2a12f738a77b362d74a65949b58c37f2affcd15ba8b1c979b63bd00223b8a456
pycore_typeobject.h https://github.com/python/cpython/pull/131174/files#diff-9df981eafa9c743230f2e1513191ba147f0fba63d0c51fb7968c1e7093d9e877
object.h https://github.com/python/cpython/pull/131174/files#diff-87272721a5cf1cd9915d6f503f6a7bbefa2f26c935c7ce83ca78706afd0ad05a
refcount.h https://github.com/python/cpython/pull/131174/files#diff-586c6481df97b64cf94363854b92d8e896f8b969f9f160fdb69ba0eae3cdc987
test_opcache.py https://github.com/python/cpython/pull/131174/files#diff-dd88a1417bab2a9400460e629e7e43a3f6e798e47b44fe3541f3f804f12430d1
2025-03-14-13-08-20.gh-issue-127266._tyfBp.rst https://github.com/python/cpython/pull/131174/files#diff-0c76f728f1804f73e9803de65856995503deb1b9574137ae77eea74ed73a7592
typeobject.c https://github.com/python/cpython/pull/131174/files#diff-1decebeef15f4e0b0ce106c665751ec55068d4d1d1825847925ad4f528b5b872
ceval.c https://github.com/python/cpython/pull/131174/files#diff-c22186367cbe20233e843261998dc027ae5f1f8c0d2e778abfa454ae74cc59de
suppressions_free_threading.txt https://github.com/python/cpython/pull/131174/files#diff-e0bd286d26ab448230ebe522b9086f5e93c33327108faff3a3957a34bb605f62
Include/internal/pycore_interp_structs.hhttps://github.com/python/cpython/pull/131174/files#diff-6075b6142803c1eccc213aa150704fd639443c65311d5999f69a5ea77cb76756
View file https://github.com/nascheme/cpython/blob/5672352f32bf90fd1a9ff3e2a0bc0c4101c95915/Include/internal/pycore_interp_structs.h
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/131174/{{ revealButtonHref }}
https://github.com/python/cpython/pull/131174/files#diff-6075b6142803c1eccc213aa150704fd639443c65311d5999f69a5ea77cb76756
https://github.com/python/cpython/pull/131174/files#diff-6075b6142803c1eccc213aa150704fd639443c65311d5999f69a5ea77cb76756
Include/internal/pycore_object.hhttps://github.com/python/cpython/pull/131174/files#diff-2a12f738a77b362d74a65949b58c37f2affcd15ba8b1c979b63bd00223b8a456
View file https://github.com/nascheme/cpython/blob/5672352f32bf90fd1a9ff3e2a0bc0c4101c95915/Include/internal/pycore_object.h
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/131174/{{ revealButtonHref }}
https://github.com/python/cpython/pull/131174/files#diff-2a12f738a77b362d74a65949b58c37f2affcd15ba8b1c979b63bd00223b8a456
https://github.com/python/cpython/pull/131174/files#diff-2a12f738a77b362d74a65949b58c37f2affcd15ba8b1c979b63bd00223b8a456
Include/internal/pycore_typeobject.hhttps://github.com/python/cpython/pull/131174/files#diff-9df981eafa9c743230f2e1513191ba147f0fba63d0c51fb7968c1e7093d9e877
View file https://github.com/nascheme/cpython/blob/5672352f32bf90fd1a9ff3e2a0bc0c4101c95915/Include/internal/pycore_typeobject.h
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/131174/{{ revealButtonHref }}
https://github.com/python/cpython/pull/131174/files#diff-9df981eafa9c743230f2e1513191ba147f0fba63d0c51fb7968c1e7093d9e877
https://github.com/python/cpython/pull/131174/files#diff-9df981eafa9c743230f2e1513191ba147f0fba63d0c51fb7968c1e7093d9e877
Include/object.hhttps://github.com/python/cpython/pull/131174/files#diff-87272721a5cf1cd9915d6f503f6a7bbefa2f26c935c7ce83ca78706afd0ad05a
View file https://github.com/nascheme/cpython/blob/5672352f32bf90fd1a9ff3e2a0bc0c4101c95915/Include/object.h
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/131174/{{ revealButtonHref }}
https://github.com/python/cpython/pull/131174/files#diff-87272721a5cf1cd9915d6f503f6a7bbefa2f26c935c7ce83ca78706afd0ad05a
https://github.com/python/cpython/pull/131174/files#diff-87272721a5cf1cd9915d6f503f6a7bbefa2f26c935c7ce83ca78706afd0ad05a
https://github.com/python/cpython/pull/131174/files#diff-87272721a5cf1cd9915d6f503f6a7bbefa2f26c935c7ce83ca78706afd0ad05a
https://github.com/python/cpython/pull/131174/files#diff-87272721a5cf1cd9915d6f503f6a7bbefa2f26c935c7ce83ca78706afd0ad05a
Include/refcount.hhttps://github.com/python/cpython/pull/131174/files#diff-586c6481df97b64cf94363854b92d8e896f8b969f9f160fdb69ba0eae3cdc987
View file https://github.com/nascheme/cpython/blob/5672352f32bf90fd1a9ff3e2a0bc0c4101c95915/Include/refcount.h
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/131174/{{ revealButtonHref }}
https://github.com/python/cpython/pull/131174/files#diff-586c6481df97b64cf94363854b92d8e896f8b969f9f160fdb69ba0eae3cdc987
https://github.com/python/cpython/pull/131174/files#diff-586c6481df97b64cf94363854b92d8e896f8b969f9f160fdb69ba0eae3cdc987
Lib/test/test_opcache.pyhttps://github.com/python/cpython/pull/131174/files#diff-dd88a1417bab2a9400460e629e7e43a3f6e798e47b44fe3541f3f804f12430d1
View file https://github.com/nascheme/cpython/blob/5672352f32bf90fd1a9ff3e2a0bc0c4101c95915/Lib/test/test_opcache.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/131174/{{ revealButtonHref }}
https://github.com/python/cpython/pull/131174/files#diff-dd88a1417bab2a9400460e629e7e43a3f6e798e47b44fe3541f3f804f12430d1
https://github.com/python/cpython/pull/131174/files#diff-dd88a1417bab2a9400460e629e7e43a3f6e798e47b44fe3541f3f804f12430d1
https://github.com/python/cpython/pull/131174/files#diff-dd88a1417bab2a9400460e629e7e43a3f6e798e47b44fe3541f3f804f12430d1
https://github.com/python/cpython/pull/131174/files#diff-dd88a1417bab2a9400460e629e7e43a3f6e798e47b44fe3541f3f804f12430d1
https://github.com/python/cpython/pull/131174/files#diff-dd88a1417bab2a9400460e629e7e43a3f6e798e47b44fe3541f3f804f12430d1
https://github.com/python/cpython/pull/131174/files#diff-dd88a1417bab2a9400460e629e7e43a3f6e798e47b44fe3541f3f804f12430d1
Misc/NEWS.d/next/Core_and_Builtins/2025-03-14-13-08-20.gh-issue-127266._tyfBp.rsthttps://github.com/python/cpython/pull/131174/files#diff-0c76f728f1804f73e9803de65856995503deb1b9574137ae77eea74ed73a7592
View file https://github.com/nascheme/cpython/blob/5672352f32bf90fd1a9ff3e2a0bc0c4101c95915/Misc/NEWS.d/next/Core_and_Builtins/2025-03-14-13-08-20.gh-issue-127266._tyfBp.rst
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/131174/{{ revealButtonHref }}
Please reload this pagehttps://github.com/python/cpython/pull/131174/files
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.