René's URL Explorer Experiment


Title: Audit all built-in modules for thread safety · Issue #116738 · python/cpython · GitHub

Open Graph Title: Audit all built-in modules for thread safety · Issue #116738 · python/cpython

X Title: Audit all built-in modules for thread safety · Issue #116738 · python/cpython

Description: Feature or enhancement Proposal: We should audit every built-in module for thread safety and make any necessary fixes. This can be done separately from tagging the modules as safe using Py_mod_gil; any data races in built-in modules are ...

Open Graph Description: Feature or enhancement Proposal: We should audit every built-in module for thread safety and make any necessary fixes. This can be done separately from tagging the modules as safe using Py_mod_gil;...

X Description: Feature or enhancement Proposal: We should audit every built-in module for thread safety and make any necessary fixes. This can be done separately from tagging the modules as safe using Py_mod_gil;...

Opengraph URL: https://github.com/python/cpython/issues/116738

X: @github

direct link

Domain: github.com


Hey, it has json ld scripts:
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Audit all built-in modules for thread safety","articleBody":"# Feature or enhancement\n\n### Proposal:\n\nWe should audit every built-in module for thread safety and make any necessary fixes. This can be done separately from tagging the modules as safe using `Py_mod_gil`; any data races in built-in modules are considered bugs in the free-threaded build and not incompatibilities.\n\nBelow is a list of all source files that contain at least one module definition, as defined by files that contain either a call to `PyModule_Create()` or an array of `PyModuleDef_Slot`s. If you'd like to help out with this task, take a look at one of the incomplete files. If the conversion is trivial, check it off and attach the PR to this issue. Otherwise, convert the line into an issue and assign it to yourself.\n\nEvery module is different, but here are a few high-level points to guide the work:\n1. Use [`PyMutex`](https://github.com/python/cpython/blob/main/Include/internal/pycore_lock.h) as the basic unit of locking.\n2. If you need to hold a lock for a longer period of time, especially across calls that may reenter Python code or acquire other locks, use [critical sections](https://github.com/python/cpython/blob/main/Include/internal/pycore_critical_section.h).\n3. If the module you're looking at is a thin wrapper around related code elsewhere in CPython (e.g., `Modules/_codecsmodule.c` and `Python/codecs.c`), you can also audit/convert the related non-module code. Otherwise, try to contain your work to just the module code, and create separate issues for any dependencies that aren't thread-safe.\n4. Remember that C API functions are generally expected to handle thread-safety internally. C code that operates on Python objects using only C API calls is usually thread-safe by default (but look out for code that reads or modifies `PyObject*`s in C structs, since that needs synchronization).\n5. Watch out for functions/macros that return borrowed references, like `PyList_GetItem()` or `PyDict_GetItem()`. If other threads could have references to the object, prefer functions like `PyList_GetItemRef()` or `PyDict_GetItemRef()` that return owned references (and will safely raise an error if the index/key doesn't exist).\n\n\n### Files to audit\n- [x] Modules/_abc.c\n- [ ] Modules/arraymodule.c - https://github.com/python/cpython/pull/130771\n- [x] Modules/_asynciomodule.c\n- [x] Modules/atexitmodule.c\n- [ ] Modules/binascii.c\n- [x] Modules/_bisectmodule.c\n- [x] Modules/_blake2/blake2module.c\n- [x] Modules/_bz2module.c\n- [ ] Modules/cjkcodecs/cjkcodecs.h\n- [ ] Modules/cjkcodecs/multibytecodec.c\n- [x] Modules/cmathmodule.c\n- [x] Modules/_codecsmodule.c\n- [x] Modules/_collectionsmodule.c\n- [ ] Modules/_contextvarsmodule.c\n- [x] Modules/_csv.c\n- [x] Modules/_ctypes/_ctypes.c\n- [x] Modules/_ctypes/_ctypes_test.c\n- [ ] Modules/_cursesmodule.c\n- [ ] Modules/_curses_panel.c\n- [ ] Modules/_datetimemodule.c\n- [x] Modules/_dbmmodule.c\n- [ ] Modules/_decimal/_decimal.c\n- [ ] Modules/_elementtree.c\n- [x] Modules/errnomodule.c\n- [ ] Modules/faulthandler.c\n- [ ] Modules/fcntlmodule.c\n- [x] Modules/_functoolsmodule.c\n- [x] Modules/gcmodule.c\n- [x] Modules/_gdbmmodule.c\n- [x] Modules/grpmodule.c\n- [x] Modules/_hashopenssl.c\n- [x] Modules/_heapqmodule.c\n- [x] Modules/_io/_iomodule.c\n- [ ] Modules/itertoolsmodule.c\n- [x] Modules/_json.c - https://github.com/python/cpython/pull/119438\n- [ ] Modules/_localemodule.c\n- [x] Modules/_lsprof.c\n- [x] Modules/_lzmamodule.c\n- [x] Modules/mathmodule.c\n- [x] Modules/md5module.c\n- [x] Modules/mmapmodule.c\n- [ ] Modules/_multiprocessing/multiprocessing.c\n- [ ] Modules/_multiprocessing/posixshmem.c\n- [ ] Modules/_opcode.c\n- [ ] Modules/_operator.c\n- [ ] Modules/overlapped.c\n- [ ] Modules/_pickle.c\n- [ ] Modules/posixmodule.c\n- [ ] Modules/_posixsubprocess.c\n- [x] Modules/pwdmodule.c\n- [ ] Modules/pyexpat.c\n- [x] Modules/_queuemodule.c\n- [x] Modules/_randommodule.c\n- [ ] Modules/readline.c\n- [x] Modules/resource.c\n- [ ] Modules/_scproxy.c\n- [x] Modules/selectmodule.c\n- [x] Modules/sha1module.c\n- [x] Modules/sha2module.c\n- [x] Modules/sha3module.c\n- [ ] Modules/signalmodule.c\n- [x] Modules/socketmodule.c\n- [ ] Modules/_sqlite/module.c\n- [x] Modules/_sre/sre.c\n- [x] Modules/_ssl.c\n- [ ] Modules/_stat.c\n- [x] Modules/_statisticsmodule.c\n- [x] Modules/_struct.c\n- [x] Modules/_suggestions.c\n- [ ] Modules/symtablemodule.c\n- [ ] Modules/_sysconfig.c\n- [x] Modules/syslogmodule.c\n- [x] Modules/termios.c\n- [ ] Modules/_testbuffer.c\n- [ ] Modules/_testcapimodule.c\n- [ ] Modules/_testclinic.c\n- [ ] Modules/_testclinic_limited.c\n- [ ] Modules/_testexternalinspection.c\n- [ ] Modules/_testimportmultiple.c\n- [ ] Modules/_testinternalcapi.c\n- [ ] Modules/_testlimitedcapi.c\n- [ ] Modules/_testmultiphase.c\n- [ ] Modules/_testsinglephase.c\n- [x] Modules/_threadmodule.c\n- [ ] Modules/timemodule.c\n- [ ] Modules/_tkinter.c\n- [ ] Modules/_tracemalloc.c\n- [ ] Modules/_typingmodule.c\n- [ ] Modules/unicodedata.c\n- [x] Modules/_uuidmodule.c\n- [x] Modules/_weakref.c\n- [ ] Modules/_winapi.c\n- [ ] Modules/_xxinterpchannelsmodule.c\n- [ ] Modules/_xxinterpqueuesmodule.c\n- [ ] Modules/xxlimited_35.c\n- [ ] Modules/xxlimited.c\n- [ ] Modules/xxmodule.c\n- [ ] Modules/_xxsubinterpretersmodule.c\n- [ ] Modules/xxsubtype.c\n- [ ] Modules/_xxtestfuzz/_xxtestfuzz.c\n- [x] Modules/zlibmodule.c\n- [x] Modules/_zoneinfo.c\n- [ ] Objects/genobject.c (including ag_running_async)\n- [ ] PC/msvcrtmodule.c\n- [ ] PC/python3dll.c\n- [ ] PC/winreg.c\n- [ ] PC/winsound.c\n- [ ] Python/bltinmodule.c\n- [ ] Python/import.c\n- [x] Python/instrumentation.c\n- [ ] Python/marshal.c\n- [ ] Python/Python-ast.c\n- [ ] Python/Python-tokenize.c\n- [ ] Python/sysmodule.c\n- [x] Python/_warnings.c\n\n\n\u003cdetails\u003e\n\u003csummary\u003eCompleted Issues\u003c/summary\u003e\n\n### Completed Issues\n- [ ] https://github.com/python/cpython/issues/116664\n- [ ] https://github.com/python/cpython/issues/114271\n- [ ] https://github.com/python/cpython/issues/112062\n- [ ] https://github.com/python/cpython/issues/111916\n- [ ] https://github.com/python/cpython/issues/116616\n\n\u003c/details\u003e\n\n### Has this already been discussed elsewhere?\n\nI have already discussed this feature proposal on Discourse\n\n### Links to previous discussion of this feature:\n\nhttps://peps.python.org/pep-0703/, especially [this section](https://peps.python.org/pep-0703/#py-mod-gil-slot)\n\n\u003c!-- gh-linked-prs --\u003e\n### Linked PRs\n* gh-117488\n* gh-117530\n* gh-118344\n* gh-119438\n* gh-120103\n* gh-125328\n* gh-131319\n* gh-135036\n* gh-135196\n* gh-135309\n* gh-135434\n* gh-136555\n* gh-136658\n* gh-136695\n* gh-136760\n* gh-137021\n* gh-137221\n* gh-137222\n* gh-138229\n* gh-138339\n* gh-138395\n* gh-138467\n* gh-138504\n* gh-138575\n* gh-138793\n* gh-139237\n* gh-139825\n* gh-139987\n* gh-140068\n* gh-140229\n* gh-140321\n* gh-140391\n* gh-140459\n* gh-140555\n* gh-140711\n* gh-141365\n* gh-141825\n* gh-141923\n* gh-141990\n* gh-142161\n* gh-142261\n* gh-142432\n* gh-142756\n* gh-142947\n* gh-143074\n* gh-143234\n\u003c!-- /gh-linked-prs --\u003e\n","author":{"url":"https://github.com/swtaarrs","@type":"Person","name":"swtaarrs"},"datePublished":"2024-03-13T16:52:32.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":5},"url":"https://github.com/116738/cpython/issues/116738"}

route-pattern/_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format)
route-controllervoltron_issues_fragments
route-actionissue_layout
fetch-noncev2:7ab3389d-fa0e-0fbc-3d5e-f152a6675d1a
current-catalog-service-hash81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114
request-id8BE8:21FEDA:8D13CF:C39560:696A82C4
html-safe-nonce2d41f56f2bbbf2253e3f76a7b0d68debf2e6f1746927a5b80744c93643316a29
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4QkU4OjIxRkVEQTo4RDEzQ0Y6QzM5NTYwOjY5NkE4MkM0IiwidmlzaXRvcl9pZCI6IjE2MTA3MDExODQwMzAxMTQ1MDAiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ==
visitor-hmac70a5fb943ed63d93aa87cb84767785e470f84fd8cd45b5c47328fc86908d2a77
hovercard-subject-tagissue:2184479275
github-keyboard-shortcutsrepository,issues,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///voltron/issues_fragments/issue_layout
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/python/cpython/116738/issue_layout
twitter:imagehttps://opengraph.githubassets.com/7848adfb0d9d9f46066737282ad6a845b906166c37abaa09dbcd9268c7deddef/python/cpython/issues/116738
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/7848adfb0d9d9f46066737282ad6a845b906166c37abaa09dbcd9268c7deddef/python/cpython/issues/116738
og:image:altFeature or enhancement Proposal: We should audit every built-in module for thread safety and make any necessary fixes. This can be done separately from tagging the modules as safe using Py_mod_gil;...
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
og:author:usernameswtaarrs
hostnamegithub.com
expected-hostnamegithub.com
None913560fa317c3c5a71e34f9b19253c9f09d02b4b958a86c2a56f4c8541116377
turbo-cache-controlno-preview
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
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release5998c30593994bf2589055aef7b22d368a499367
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/python/cpython/issues/116738#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fissues%2F116738
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%2Fissues%2F116738
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%2Fvoltron%2Fissues_fragments%2Fissue_layout&source=header-repo&source_repo=python%2Fcpython
Reloadhttps://github.com/python/cpython/issues/116738
Reloadhttps://github.com/python/cpython/issues/116738
Reloadhttps://github.com/python/cpython/issues/116738
python https://github.com/python
cpythonhttps://github.com/python/cpython
Please reload this pagehttps://github.com/python/cpython/issues/116738
Notifications https://github.com/login?return_to=%2Fpython%2Fcpython
Fork 33.9k https://github.com/login?return_to=%2Fpython%2Fcpython
Star 71.1k 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 Uh oh! There was an error while loading. Please reload this page. https://github.com/python/cpython/security
Please reload this pagehttps://github.com/python/cpython/issues/116738
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
New issuehttps://github.com/login?return_to=https://github.com/python/cpython/issues/116738
New issuehttps://github.com/login?return_to=https://github.com/python/cpython/issues/116738
Audit all built-in modules for thread safetyhttps://github.com/python/cpython/issues/116738#top
extension-modulesC modules in the Modules dirhttps://github.com/python/cpython/issues?q=state%3Aopen%20label%3A%22extension-modules%22
topic-free-threadinghttps://github.com/python/cpython/issues?q=state%3Aopen%20label%3A%22topic-free-threading%22
type-featureA feature request or enhancementhttps://github.com/python/cpython/issues?q=state%3Aopen%20label%3A%22type-feature%22
https://github.com/swtaarrs
https://github.com/swtaarrs
swtaarrshttps://github.com/swtaarrs
on Mar 13, 2024https://github.com/python/cpython/issues/116738#issue-2184479275
PyMutexhttps://github.com/python/cpython/blob/main/Include/internal/pycore_lock.h
critical sectionshttps://github.com/python/cpython/blob/main/Include/internal/pycore_critical_section.h
gh-128942: make arraymodule.c free-thread safe (lock-free) #130771https://github.com/python/cpython/pull/130771
gh-116738: Make _json module safe in the free-threading build #119438https://github.com/python/cpython/pull/119438
Make _warnings.c thread-safe in free-threaded build #116664https://github.com/python/cpython/issues/116664
Make _threadmodule.c thread-safe in --disable-gil builds #114271https://github.com/python/cpython/issues/114271
Make _struct module thread-safe in --disable-gil builds #112062https://github.com/python/cpython/issues/112062
Make hashlib related modules thread-safe without the GIL #111916https://github.com/python/cpython/issues/111916
socketmodule.c: use atomics to access defaulttimeout in free-threaded build  #116616https://github.com/python/cpython/issues/116616
https://peps.python.org/pep-0703/https://peps.python.org/pep-0703/
this sectionhttps://peps.python.org/pep-0703/#py-mod-gil-slot
gh-116738: Make _abc module thread-safe #117488https://github.com/python/cpython/pull/117488
gh-116738: Make _codecs module thread-safe #117530https://github.com/python/cpython/pull/117530
gh-116738: Make _csv module thread-safe #118344https://github.com/python/cpython/pull/118344
gh-116738: Make _json module safe in the free-threading build #119438https://github.com/python/cpython/pull/119438
gh-116738: Make the array built in module safe for free threaded python #120103https://github.com/python/cpython/pull/120103
[3.13] gh-116738: Make _csv module thread-safe (GH-118344) #125328https://github.com/python/cpython/pull/125328
gh-116738: remove multiprocessing suppressions #131319https://github.com/python/cpython/pull/131319
gh-116738: Make _heapq module thread-safe #135036https://github.com/python/cpython/pull/135036
gh-116738: Inline append for local PyList #135196https://github.com/python/cpython/pull/135196
[3.14] gh-116738: Make _heapq module thread-safe (GH-135036) #135309https://github.com/python/cpython/pull/135309
gh-116738: Make grp module thread-safe #135434https://github.com/python/cpython/pull/135434
GH-116738: document thread-safety of bisect #136555https://github.com/python/cpython/pull/136555
[3.14] gh-116738: Make grp module thread-safe (GH-135434) #136658https://github.com/python/cpython/pull/136658
gh-116738: Make pwd module thread-safe #136695https://github.com/python/cpython/pull/136695
gh-116738: Make syslog module thread-safe #136760https://github.com/python/cpython/pull/136760
gh-116738: Make bisect module thread-safe #137021https://github.com/python/cpython/pull/137021
[3.14] GH-116738: document thread-safety of bisect (GH-136555) #137221https://github.com/python/cpython/pull/137221
[3.13] GH-116738: document thread-safety of bisect (GH-136555) #137222https://github.com/python/cpython/pull/137222
gh-116738: Make cProfile module thread-safe #138229https://github.com/python/cpython/pull/138229
gh-116738: Fix test_json_mutating_exact_dict #138339https://github.com/python/cpython/pull/138339
gh-116738: Audit thread-safety for termios module #138395https://github.com/python/cpython/pull/138395
gh-116738: test dbm.gnu module on FT Python build #138467https://github.com/python/cpython/pull/138467
gh-116738: Test resource module on FT Python build #138504https://github.com/python/cpython/pull/138504
[3.14] gh-116738: make cProfile module thread-safe (GH-138229) #138575https://github.com/python/cpython/pull/138575
[3.14] gh-116738: add multi-threaded tests for resource module on free-threading builds (GH-138504) #138793https://github.com/python/cpython/pull/138793
gh-116738: Make mmap module thread-safe #139237https://github.com/python/cpython/pull/139237
[3.14] gh-116738: make mmap module thread-safe (GH-139237) #139825https://github.com/python/cpython/pull/139825
[3.14] gh-116738: test dbm.gnu module on FT Python build (GH-138467) #139987https://github.com/python/cpython/pull/139987
gh-116738: Test uuid module for free threading #140068https://github.com/python/cpython/pull/140068
[3.14] gh-116738: test uuid module thread safety in free-threading (GH-140068) #140229https://github.com/python/cpython/pull/140229
gh-116738: Make _suggestions module thread-safe #140321https://github.com/python/cpython/pull/140321
gh-116738: Add critical section to dbm/gdbm context manager #140391https://github.com/python/cpython/pull/140391
[3.14] gh-116738: Add critical section to dbm/gdbm context manager (gh-140391) #140459https://github.com/python/cpython/pull/140459
gh-116738: Use PyMutex for bz2 module #140555https://github.com/python/cpython/pull/140555
gh-116738: Use PyMutex for lzma module #140711https://github.com/python/cpython/pull/140711
gh-116738: Make csv module thread-safe #141365https://github.com/python/cpython/pull/141365
[3.14] gh-116738: Make csv module thread-safe (gh-141365) #141825https://github.com/python/cpython/pull/141825
gh-116738: Test re module for free threading #141923https://github.com/python/cpython/pull/141923
[3.14] gh-116738: Fix thread-safety issue in re module for free threading (gh-141923) #141990https://github.com/python/cpython/pull/141990
gh-116738: Make cmath module thread-safe #142161https://github.com/python/cpython/pull/142161
[3.14] gh-116738: Statically initialize special constants in cmath module (gh-142161) #142261https://github.com/python/cpython/pull/142261
gh-116738: Make zlib module thread-safe #142432https://github.com/python/cpython/pull/142432
gh-116738: Make _bz2 module thread-safe #142756https://github.com/python/cpython/pull/142756
gh-116738: Make lzma module thread-safe #142947https://github.com/python/cpython/pull/142947
gh-116738: make entering of contextvars.Context thread safe #143074https://github.com/python/cpython/pull/143074
gh-116738: Add free-threading tests for binascii #143234https://github.com/python/cpython/pull/143234
extension-modulesC modules in the Modules dirhttps://github.com/python/cpython/issues?q=state%3Aopen%20label%3A%22extension-modules%22
topic-free-threadinghttps://github.com/python/cpython/issues?q=state%3Aopen%20label%3A%22topic-free-threading%22
type-featureA feature request or enhancementhttps://github.com/python/cpython/issues?q=state%3Aopen%20label%3A%22type-feature%22
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.