Skip to content

v1.7.0

Choose a tag to compare

@benoitc benoitc released this 22 Feb 23:38
· 291 commits to main since this release

Added

  • Shared Router Architecture for Event Loops

    • Single py_event_router process handles all event loops (both shared and isolated)
    • Timer and FD messages include loop identity for correct dispatch
    • Eliminates need for per-loop router processes
    • Handle-based Python C API using PyCapsule for loop references
  • Isolated Event Loops - Create isolated event loops with ErlangEventLoop(isolated=True)

    • Default (isolated=False): uses the shared global loop managed by Erlang
    • Isolated (isolated=True): creates a dedicated loop with its own pending queue
    • Full asyncio support (timers, FD operations) for both modes
    • Useful for multi-threaded Python applications where each thread needs its own loop
    • See docs/asyncio.md for usage and architecture details