-
Notifications
You must be signed in to change notification settings - Fork 3.9k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
core: Fully delegate picks to DelayedClientTransport
DelayedClientTransport already had to handle all the cases, so ManagedChannelImpl picking was acting only as an optimization. Optimizing DelayedClientTransport to avoid the lock when not queuing makes ManagedChannelImpl picking entirely redundant, and allows us to remove the duplicate race-handling logic. This avoids double-picking when queuing, where ManagedChannelImpl does a pick, decides to queue, and then DelayedClientTransport re-performs the pick because it doesn't know which pick version was used. This was noticed with RLS, which mutates state within the picker.
- Loading branch information
Showing
2 changed files
with
58 additions
and
88 deletions.
There are no files selected for viewing
This file contains 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
This file contains 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