René's URL Explorer Experiment


Title: gh-59956: Clarify Runtime State Status Expectations by ericsnowcurrently · Pull Request #101308 · python/cpython · GitHub

Open Graph Title: gh-59956: Clarify Runtime State Status Expectations by ericsnowcurrently · Pull Request #101308 · python/cpython

X Title: gh-59956: Clarify Runtime State Status Expectations by ericsnowcurrently · Pull Request #101308 · python/cpython

Description: A PyThreadState can be in one of many states in its lifecycle, represented by some status value. Those statuses haven't been particularly clear, so we're addressing that here. Specifically: made the distinct lifecycle statuses clear on PyThreadState identified expectations of how various lifecycle-related functions relate to status noted the various places where those expectations don't match the actual behavior At some point we'll need to address the mismatches. (This change also includes some cleanup.) Issue: gh-59956

Open Graph Description: A PyThreadState can be in one of many states in its lifecycle, represented by some status value. Those statuses haven't been particularly clear, so we're addressing that here. Specificall...

X Description: A PyThreadState can be in one of many states in its lifecycle, represented by some status value. Those statuses haven't been particularly clear, so we're addressing that here. Spe...

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

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/commits/:range(.:format)
route-controllerpull_requests
route-actioncommits
fetch-noncev2:03bde6f0-66f4-3ff1-79db-e4268da516fd
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-id80E8:361517:5ACDE4F:7CF62E9:69961048
html-safe-noncea621aaa731a649eb160e0ff5b24f40db92e653635adc5665ca2f261700f4fdb3
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4MEU4OjM2MTUxNzo1QUNERTRGOjdDRjYyRTk6Njk5NjEwNDgiLCJ2aXNpdG9yX2lkIjoiMjc3NTMxMzQ5MDgzNTI3OTk0NCIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmac41c60d198b156473601e8b34523edfb001c70f5c1ab4f68d96283a42393c0bea
hovercard-subject-tagpull_request:1215898712
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/commits
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/python/cpython/pull/101308/commits/d402a8234a8b076ec74187f1cce54fc557f5ff90
twitter:imagehttps://avatars.githubusercontent.com/u/1152074?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/1152074?s=400&v=4
og:image:altA PyThreadState can be in one of many states in its lifecycle, represented by some status value. Those statuses haven't been particularly clear, so we're addressing that here. Specificall...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None7490a2fd98baca866acf503b81aa249491b42e5b4bab7f7a2801be81175c8845
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-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release7df053103622790f523ce252eca7a6472dc73d27
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/python/cpython/pull/101308/commits/d402a8234a8b076ec74187f1cce54fc557f5ff90#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fpull%2F101308%2Fcommits%2Fd402a8234a8b076ec74187f1cce54fc557f5ff90
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub SparkBuild and deploy intelligent appshttps://github.com/features/spark
GitHub ModelsManage and compare promptshttps://github.com/features/models
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
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
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/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%2F101308%2Fcommits%2Fd402a8234a8b076ec74187f1cce54fc557f5ff90
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%2Fcommits&source=header-repo&source_repo=python%2Fcpython
Reloadhttps://github.com/python/cpython/pull/101308/commits/d402a8234a8b076ec74187f1cce54fc557f5ff90
Reloadhttps://github.com/python/cpython/pull/101308/commits/d402a8234a8b076ec74187f1cce54fc557f5ff90
Reloadhttps://github.com/python/cpython/pull/101308/commits/d402a8234a8b076ec74187f1cce54fc557f5ff90
python https://github.com/python
cpythonhttps://github.com/python/cpython
Please reload this pagehttps://github.com/python/cpython/pull/101308/commits/d402a8234a8b076ec74187f1cce54fc557f5ff90
Notifications https://github.com/login?return_to=%2Fpython%2Fcpython
Fork 34.1k https://github.com/login?return_to=%2Fpython%2Fcpython
Star 71.6k 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.1k https://github.com/python/cpython/pulls
Actions https://github.com/python/cpython/actions
Projects 31 https://github.com/python/cpython/projects
Security 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 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
ericsnowcurrentlyhttps://github.com/ericsnowcurrently
python:mainhttps://github.com/python/cpython/tree/main
ericsnowcurrently:pystate-lifecycle-cleanuphttps://github.com/ericsnowcurrently/cpython/tree/pystate-lifecycle-cleanup
Conversation 0 https://github.com/python/cpython/pull/101308
Commits 35 https://github.com/python/cpython/pull/101308/commits
Checks 0 https://github.com/python/cpython/pull/101308/checks
Files changed https://github.com/python/cpython/pull/101308/files
Please reload this pagehttps://github.com/python/cpython/pull/101308/commits/d402a8234a8b076ec74187f1cce54fc557f5ff90
gh-59956: Clarify Runtime State Status Expectations https://github.com/python/cpython/pull/101308/commits/d402a8234a8b076ec74187f1cce54fc557f5ff90#top
Show all changes 35 commits https://github.com/python/cpython/pull/101308/files
b64ce9f Factor out tstate_verify_not_active(). ericsnowcurrently Jan 19, 2023 https://github.com/python/cpython/pull/101308/commits/b64ce9f329c50c18824d31e6d69da5786edd1048
1be0ec4 Drop the check_current param from _PyThreadState_Delete(). ericsnowcurrently Jan 19, 2023 https://github.com/python/cpython/pull/101308/commits/1be0ec4c0498df1c26a720a28ff5a25e48ff9415
3454bf1 Drop _PyThreadState_Delete(). ericsnowcurrently Jan 19, 2023 https://github.com/python/cpython/pull/101308/commits/3454bf1fa6bb26ad03b8468ed8914796a5c6379f
a929e32 Unset the "current" thread state before zapping the threads instead o… ericsnowcurrently Jan 19, 2023 https://github.com/python/cpython/pull/101308/commits/a929e32eda9af4a1ce117be3dd8ce9635137aabf
e6ddd92 Only clear the current thread if the interpreter matches. ericsnowcurrently Jan 19, 2023 https://github.com/python/cpython/pull/101308/commits/e6ddd92c3d1260ec30403bb285a85f44bb90f730
36c512f Always "check_current" in zapthreads(). ericsnowcurrently Jan 19, 2023 https://github.com/python/cpython/pull/101308/commits/36c512f5af5ffdf6d79beafbd797dcd8b9b4f136
d402a82 Do not pass the runtime to _PyThreadState_DeleteExcept(). ericsnowcurrently Jan 19, 2023 https://github.com/python/cpython/pull/101308/commits/d402a8234a8b076ec74187f1cce54fc557f5ff90
2ddfe71 Add some notes, TODO comments, and asserts. ericsnowcurrently Jan 19, 2023 https://github.com/python/cpython/pull/101308/commits/2ddfe71488bb79a2aef97cc677ce33f1819ced13
99de509 Mark the main interpreter as finalizing during runtime fini. ericsnowcurrently Jan 19, 2023 https://github.com/python/cpython/pull/101308/commits/99de509f71bb7ebbe1dacd16085ba8c56fe900f8
b77ae5e Add more notes and TODO comments. ericsnowcurrently Jan 19, 2023 https://github.com/python/cpython/pull/101308/commits/b77ae5e4ec896e84e7dbf94374ff012815d71384
9ca673c Make PyThreadState._status more granular. ericsnowcurrently Jan 19, 2023 https://github.com/python/cpython/pull/101308/commits/9ca673c181e60fd78d19cd4b8dd1a6742f40d261
8a71957 Add more status fields. ericsnowcurrently Jan 20, 2023 https://github.com/python/cpython/pull/101308/commits/8a719576e7e85e5f4aa703843d3a252531ed7178
62d1a93 Add a TODO. ericsnowcurrently Jan 20, 2023 https://github.com/python/cpython/pull/101308/commits/62d1a93058f959ed38b363c607696331bc8ad45a
90cea92 Track active status. ericsnowcurrently Jan 19, 2023 https://github.com/python/cpython/pull/101308/commits/90cea929f54b3150cbc5529c7ca52f87c335a248
9965813 Clarify a TODO comment. ericsnowcurrently Jan 20, 2023 https://github.com/python/cpython/pull/101308/commits/9965813cf6e9bb116fac607ce525503285fce5e2
fd5048b Associate "bound" and "active". ericsnowcurrently Jan 20, 2023 https://github.com/python/cpython/pull/101308/commits/fd5048be35319855972c2be957ddee515fa88f22
2105cd6 _PyThreadState_Prealloc() -> _PyThreadState_New() ericsnowcurrently Jan 23, 2023 https://github.com/python/cpython/pull/101308/commits/2105cd69f91584856f024f42f0c3559f7879e098
8b110cf Factor out tstate_tss_*(). ericsnowcurrently Jan 24, 2023 https://github.com/python/cpython/pull/101308/commits/8b110cfe0b40572b61e9f07a6dc28e8819378817
ca98d68 current_tss_*() -> gilstate_tss_*(). ericsnowcurrently Jan 24, 2023 https://github.com/python/cpython/pull/101308/commits/ca98d68b07d8738c587953284cde75a2df39c7c2
4f39976 Add bind_gilstate_tstate() and unbind_gilstate_tstate(). ericsnowcurrently Jan 24, 2023 https://github.com/python/cpython/pull/101308/commits/4f39976bf2ae723712b50b036815e8f7e6f91cbf
6e73669 Update some TODO comments. ericsnowcurrently Jan 24, 2023 https://github.com/python/cpython/pull/101308/commits/6e7366965117aaef56e8b08cd17eff4088ef2e5f
cc3540d Clean up _PyThreadState_Swap() a little. ericsnowcurrently Jan 24, 2023 https://github.com/python/cpython/pull/101308/commits/cc3540d4b769184960fe1ccef560083f3b712127
1ce3841 Fix the stable ABI. ericsnowcurrently Jan 25, 2023 https://github.com/python/cpython/pull/101308/commits/1ce3841a81d3ba095f17438d03f4921fc7eb01d2
121d328 Fixes for multiprocessing. ericsnowcurrently Jan 25, 2023 https://github.com/python/cpython/pull/101308/commits/121d328986b5efc1c113b57110795d7d91e4b567
8666362 Move a comment. ericsnowcurrently Jan 25, 2023 https://github.com/python/cpython/pull/101308/commits/8666362da66f3eb9fb6c7b179955e2c9122c32df
52ac2d9 Preserve errno more carefully. ericsnowcurrently Jan 25, 2023 https://github.com/python/cpython/pull/101308/commits/52ac2d9e86868688194060a1a3807585538f0118
f7ac19a Do not call bind_gilstate_tstate() in bind_tstate(). ericsnowcurrently Jan 25, 2023 https://github.com/python/cpython/pull/101308/commits/f7ac19adfccc9712dc1f6e721d29c154a6e1f912
a338248 Add an assert. ericsnowcurrently Jan 25, 2023 https://github.com/python/cpython/pull/101308/commits/a338248a201897b98a537156ac37367467871705
5be78e9 Clean up bind_gilstate_tstate(). ericsnowcurrently Jan 25, 2023 https://github.com/python/cpython/pull/101308/commits/5be78e9c79a90a3bba27de8c67076d7fbff36284
f019bd6 Clear bound_gilstate for the old thread state. ericsnowcurrently Jan 25, 2023 https://github.com/python/cpython/pull/101308/commits/f019bd68fad5c32ad9603e37bedb4d62d9ce8df4
6869bfe bound_gilstate and gilstate_tss_get() must match. ericsnowcurrently Jan 25, 2023 https://github.com/python/cpython/pull/101308/commits/6869bfe09fd2941d87a3ab2a81786da0c59e0da6
f91d458 Add a blank line for clarity. ericsnowcurrently Jan 25, 2023 https://github.com/python/cpython/pull/101308/commits/f91d4582eabcc0cc34eeaa05439f41e137917643
9b45398 Do not call unbind_gilstate_tstate() in unbind_tstate(). ericsnowcurrently Jan 25, 2023 https://github.com/python/cpython/pull/101308/commits/9b453988f5624a0bf5da621e8363f547b6c58983
98a2dae Fix comments. ericsnowcurrently Jan 25, 2023 https://github.com/python/cpython/pull/101308/commits/98a2daeba3e739b1baea5412f05e4704b93c8495
afde196 Fix padding. ericsnowcurrently Jan 30, 2023 https://github.com/python/cpython/pull/101308/commits/afde19688c4d236f4b075c23171d3d0ab051f7a4
Clear filters https://github.com/python/cpython/pull/101308/commits/d402a8234a8b076ec74187f1cce54fc557f5ff90
Please reload this pagehttps://github.com/python/cpython/pull/101308/commits/d402a8234a8b076ec74187f1cce54fc557f5ff90
Please reload this pagehttps://github.com/python/cpython/pull/101308/commits/d402a8234a8b076ec74187f1cce54fc557f5ff90
pycore_pystate.h https://github.com/python/cpython/pull/101308/commits/d402a8234a8b076ec74187f1cce54fc557f5ff90#diff-76818a128869986e3de4f16dae0257c430008546f04764cd7ad8254abfa5ce83
ceval_gil.c https://github.com/python/cpython/pull/101308/commits/d402a8234a8b076ec74187f1cce54fc557f5ff90#diff-b7d806d282eab9f532468633d9090ed0a7f3215d8c6bcae04f4f8547baa39da1
pylifecycle.c https://github.com/python/cpython/pull/101308/commits/d402a8234a8b076ec74187f1cce54fc557f5ff90#diff-69223f5bb01f359a23246afbbf75b45c622e719424418d658674fbb6c2b36fad
pystate.c https://github.com/python/cpython/pull/101308/commits/d402a8234a8b076ec74187f1cce54fc557f5ff90#diff-7ac11e526f79b42d6ea9d3592cb99da46775640c69fa5510f4a6de87cced7141
Prev https://github.com/python/cpython/pull/101308/commits/36c512f5af5ffdf6d79beafbd797dcd8b9b4f136
Next https://github.com/python/cpython/pull/101308/commits/2ddfe71488bb79a2aef97cc677ce33f1819ced13
Please reload this pagehttps://github.com/python/cpython/pull/101308/commits/d402a8234a8b076ec74187f1cce54fc557f5ff90
https://github.com/ericsnowcurrently
ericsnowcurrentlyhttps://github.com/python/cpython/commits?author=ericsnowcurrently
https://github.com/python/cpython/blob/main/.github/CODEOWNERS#L318
Include/internal/pycore_pystate.hhttps://github.com/python/cpython/pull/101308/commits/d402a8234a8b076ec74187f1cce54fc557f5ff90#diff-76818a128869986e3de4f16dae0257c430008546f04764cd7ad8254abfa5ce83
View file https://github.com/ericsnowcurrently/cpython/blob/d402a8234a8b076ec74187f1cce54fc557f5ff90/Include/internal/pycore_pystate.h
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/101308/commits/{{ revealButtonHref }}
https://github.com/python/cpython/pull/101308/commits/d402a8234a8b076ec74187f1cce54fc557f5ff90#diff-76818a128869986e3de4f16dae0257c430008546f04764cd7ad8254abfa5ce83
https://github.com/python/cpython/pull/101308/commits/d402a8234a8b076ec74187f1cce54fc557f5ff90#diff-76818a128869986e3de4f16dae0257c430008546f04764cd7ad8254abfa5ce83
https://github.com/python/cpython/blob/main/.github/CODEOWNERS#L316
Python/ceval_gil.chttps://github.com/python/cpython/pull/101308/commits/d402a8234a8b076ec74187f1cce54fc557f5ff90#diff-b7d806d282eab9f532468633d9090ed0a7f3215d8c6bcae04f4f8547baa39da1
View file https://github.com/ericsnowcurrently/cpython/blob/d402a8234a8b076ec74187f1cce54fc557f5ff90/Python/ceval_gil.c
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/101308/commits/{{ revealButtonHref }}
https://github.com/python/cpython/pull/101308/commits/d402a8234a8b076ec74187f1cce54fc557f5ff90#diff-b7d806d282eab9f532468633d9090ed0a7f3215d8c6bcae04f4f8547baa39da1
https://github.com/python/cpython/pull/101308/commits/d402a8234a8b076ec74187f1cce54fc557f5ff90#diff-b7d806d282eab9f532468633d9090ed0a7f3215d8c6bcae04f4f8547baa39da1
https://github.com/python/cpython/blob/main/.github/CODEOWNERS#L317
Python/pylifecycle.chttps://github.com/python/cpython/pull/101308/commits/d402a8234a8b076ec74187f1cce54fc557f5ff90#diff-69223f5bb01f359a23246afbbf75b45c622e719424418d658674fbb6c2b36fad
View file https://github.com/ericsnowcurrently/cpython/blob/d402a8234a8b076ec74187f1cce54fc557f5ff90/Python/pylifecycle.c
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/101308/commits/{{ revealButtonHref }}
https://github.com/python/cpython/pull/101308/commits/d402a8234a8b076ec74187f1cce54fc557f5ff90#diff-69223f5bb01f359a23246afbbf75b45c622e719424418d658674fbb6c2b36fad
https://github.com/python/cpython/pull/101308/commits/d402a8234a8b076ec74187f1cce54fc557f5ff90#diff-69223f5bb01f359a23246afbbf75b45c622e719424418d658674fbb6c2b36fad
https://github.com/python/cpython/blob/main/.github/CODEOWNERS#L318
Python/pystate.chttps://github.com/python/cpython/pull/101308/commits/d402a8234a8b076ec74187f1cce54fc557f5ff90#diff-7ac11e526f79b42d6ea9d3592cb99da46775640c69fa5510f4a6de87cced7141
View file https://github.com/ericsnowcurrently/cpython/blob/d402a8234a8b076ec74187f1cce54fc557f5ff90/Python/pystate.c
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/101308/commits/{{ revealButtonHref }}
https://github.com/python/cpython/pull/101308/commits/d402a8234a8b076ec74187f1cce54fc557f5ff90#diff-7ac11e526f79b42d6ea9d3592cb99da46775640c69fa5510f4a6de87cced7141
https://github.com/python/cpython/pull/101308/commits/d402a8234a8b076ec74187f1cce54fc557f5ff90#diff-7ac11e526f79b42d6ea9d3592cb99da46775640c69fa5510f4a6de87cced7141
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.