Skip to content

Rebuild object lifetime and run native events through a mailbox per loop, add free-threaded and 3.15 wheels - #232

Merged
MarshalX merged 11 commits into
mainfrom
lifetime-redesign
Oct 11, 2026
Merged

MarshalX merged 11 commits into
mainfrom
lifetime-redesign

Conversation

@MarshalX

@MarshalX MarshalX commented Oct 10, 2026 •

Copy link
Copy Markdown
Owner

Rebuilds wrapper lifetime on one ownership rule (LIFETIME in cpp/NATIVE.md):

  • Unreferenced connections, channels and live tracks stay alive while they have handlers or pending work, until they close or their loop closes
  • Events and native call results go through a mailbox per event loop, so native threads never run Python
  • One wrapper per native object; wrappers take no attributes
  • Free-threaded Python: cp314t and cp315t wheels, plus CPython 3.15
  • Remote tracks fire ended on close; a failed RTCIceTransport survives for an ICE restart
  • Tests wait on conditions, not sleeps

@read-the-docs-community

read-the-docs-community Bot commented Oct 10, 2026 •

Copy link
Copy Markdown

@MarshalX MarshalX changed the title Rebuild object lifetime on one ownership rule, with free-threaded Python support Rebuilds wrapper lifetime on one ownership rule (LIFETIME in cpp/NATIVE.md) Oct 11, 2026
@MarshalX MarshalX changed the title Rebuilds wrapper lifetime on one ownership rule (LIFETIME in cpp/NATIVE.md) Rebuild object lifetime and run native events through a mailbox per loop, add free-threaded and 3.15 wheels Oct 11, 2026
@MarshalX
MarshalX merged commit c6e84b6 into main Oct 11, 2026
21 checks passed
@MarshalX
MarshalX deleted the lifetime-redesign branch October 11, 2026 17:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant