[netty-nio-client] Ensure initial channel used for protocol detection is released before re-acquiring #2882
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.
HttpOrHttp2ChannelPool establishes an initial connection to determine if H1 or H2 should be used for the ChannelPool. It then releases the Channel to the Pool to allow it to be re-acquired and reused. However, in some (perhaps rare) circumstances, it's possible for a subsequent acquire to race against the release, causing the second acquire to establish a new channel if the release had not yet completed. This may add unnecessary delay and incur unnecessary channel overhead. Delay because the release is likely to complete in sub-millisecond time while a new connection handshake may take many milliseconds to complete. Overhead because a second channel may linger in the pool even if the user only ever uses one channel at a time.
License