Skip to content
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 our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

no-GIL/freethreaded Python support #401

Open
8 tasks
gi0baro opened this issue Sep 4, 2024 · 0 comments
Open
8 tasks

no-GIL/freethreaded Python support #401

gi0baro opened this issue Sep 4, 2024 · 0 comments
Labels
oven Ideas, architectural changes and design patterns

Comments

@gi0baro
Copy link
Member

gi0baro commented Sep 4, 2024

Required steps:

  • PyO3 support (Tracking issue for no-gil/freethreaded work PyO3/pyo3#4265)
  • uvloop support (Add support for free-threaded (nogil) 3.13 Python MagicStack/uvloop#642)
  • split workers implementation into two:
    • the existing one based on multiprocessing
    • the new one (no-gil only) based on threads
  • re-implement signals handling in threaded workers (cannot be used outside main thread)
  • check implications of having multiple running Python event loops (one per thread)
  • find the best way to support both GIL and no-GIL Python
    • this will probably require to build different wheels for 3.13
  • check internal mutability and thread-safe code is still valid in no-GIL ctx
  • threaded workers means we can avoid sharing the listening socket between processes
    • should potentially fix Windows workers limit 1
@gi0baro gi0baro added the oven Ideas, architectural changes and design patterns label Sep 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
oven Ideas, architectural changes and design patterns
Projects
None yet
Development

No branches or pull requests

1 participant