Cascade close and select on group.closed() in subscribers#1013
Cascade close and select on group.closed() in subscribers#1013
Conversation
Ensure that closing a broadcast cascades to child tracks, and that subscriber recv_group tasks terminate promptly when a group is closed (e.g. due to subscription cancellation) by selecting on group.closed(). - Add Producer::closed() to await explicit state closure - Add GroupProducer::closed() forwarding to state - Add TrackWeak::close() that cascades to child groups - Update BroadcastProducer::close() to cascade to tracks and requests - Add select on group.closed() in lite subscriber recv_group - Replace unused() with closed() in IETF subscriber recv_group Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review infoConfiguration used: Organization UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (6)
WalkthroughThis pull request introduces concurrency improvements and error cascading through the broadcast hierarchy. The subscriber modules now use 🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
Producer::closed()/GroupProducer::closed()to await explicit state closureTrackWeak::close()that cascades close to all child groupsBroadcastProducer::close()to cascade to child tracks and pending requestsselect!ongroup.closed()in both lite and IETF subscriberrecv_group, so we stop reading from the QUIC stream when the group is closed (e.g. due to subscription cancellation)Test plan
just checkpasses🤖 Generated with Claude Code