You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your feature request related to a problem? Please describe.
Python 3.13 introduces an (experimental) free threading option (aka "NO_GIL"). PyObjC should support this feature.
Describe the solution you'd like
TL/DR: This is a lot more work than "build extension modules using a free threaded build"
Adding this requires a number of changes to PyObjC and the build process:
Migrate all extension modules to 2 phase init
Check all framework extension modules for possible threading issues and enable free threading for them
Add fine grained locking in pyobjc-core, and then enable free threading
Update the testing harness to also test a free threading build for 3.13 (both architectures)
[ ]Update the distribution building script to also build free threaded extension modules
Add documentation about support for free threading
Add test scripts that stress tests the free threading support and run those with TSAN enabled
The hard part is updating pyobjc-core, that code relies on module global state that's protected by the GIL. A somewhat easy option is to switch to a "global pyobjc lock" in the short term and slowly peel of bits that can use more fine grained locking.
The text was updated successfully, but these errors were encountered:
Is your feature request related to a problem? Please describe.
Python 3.13 introduces an (experimental) free threading option (aka "NO_GIL"). PyObjC should support this feature.
Describe the solution you'd like
TL/DR: This is a lot more work than "build extension modules using a free threaded build"
Adding this requires a number of changes to PyObjC and the build process:
The hard part is updating pyobjc-core, that code relies on module global state that's protected by the GIL. A somewhat easy option is to switch to a "global pyobjc lock" in the short term and slowly peel of bits that can use more fine grained locking.
The text was updated successfully, but these errors were encountered: