relay: give LocalForwarderRegistry a three-state entry - #542
Merged
Conversation
akash-a-n
approved these changes
Aug 7, 2026
akash-a-n
left a comment
Contributor
There was a problem hiding this comment.
@akash-a-n reviewed 5 files and all commit messages.
Reviewable status:complete! all files reviewed, all discussions resolved (waiting on afrind).
afrind
force-pushed
the
feat/local-fwd-reg-claim
branch
from
August 11, 2026 15:37
97c49da to
d4095d6
Compare
The registry mapped a track name straight to a forwarder, which let a reader attach to one before its largest and extensions arrived from upstream. A client reads that as a track restart. An entry is now absent, pending, or ready, and a pending entry does not hand out its forwarder. Only the Claim that join() returns can reach it, and dropping that Claim fails the entry instead of stranding whoever waits on it. Nothing observes the pending state yet, because both callers mark the entry ready on the next line; holding a claim open across setup is what the commits above this one do. LocalForwarderRegistryTest is new, and covers the three states, the identity checks, and the two asserts a caller can trip. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
afrind
force-pushed
the
feat/local-fwd-reg-claim
branch
from
August 11, 2026 15:39
d4095d6 to
1f8d73c
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The registry mapped a track name straight to a forwarder, which let a reader attach to one before its largest and extensions arrived from upstream.
An entry is now absent, pending, or ready, and a pending entry does not hand out its forwarder. Only the Claim that join() returns can reach it, and dropping that Claim fails the entry instead of stranding whoever waits on it.
Nothing observes the pending state yet, because both callers mark the entry ready on the next line; holding a claim open across setup is what the commits above this one do. LocalForwarderRegistryTest is new, and covers the three states, the identity checks, and the two asserts a caller can trip.
This change is