|
|
|
@ -282,18 +282,18 @@ class ChannelData { |
|
|
|
|
RefCountedPtr<ServiceConfig> saved_service_config_; |
|
|
|
|
bool received_first_resolver_result_ = false; |
|
|
|
|
// The number of SubchannelWrapper instances referencing a given Subchannel.
|
|
|
|
|
Map<Subchannel*, int> subchannel_refcount_map_; |
|
|
|
|
std::map<Subchannel*, int> subchannel_refcount_map_; |
|
|
|
|
// The set of SubchannelWrappers that currently exist.
|
|
|
|
|
// No need to hold a ref, since the map is updated in the control-plane
|
|
|
|
|
// combiner when the SubchannelWrappers are created and destroyed.
|
|
|
|
|
// TODO(roth): We really want to use a set here, not a map. Since we don't
|
|
|
|
|
// currently have a set implementation, we use a map and ignore the value.
|
|
|
|
|
Map<SubchannelWrapper*, bool> subchannel_wrappers_; |
|
|
|
|
std::map<SubchannelWrapper*, bool> subchannel_wrappers_; |
|
|
|
|
// Pending ConnectedSubchannel updates for each SubchannelWrapper.
|
|
|
|
|
// Updates are queued here in the control plane combiner and then applied
|
|
|
|
|
// in the data plane mutex when the picker is updated.
|
|
|
|
|
Map<RefCountedPtr<SubchannelWrapper>, RefCountedPtr<ConnectedSubchannel>, |
|
|
|
|
RefCountedPtrLess<SubchannelWrapper>> |
|
|
|
|
std::map<RefCountedPtr<SubchannelWrapper>, RefCountedPtr<ConnectedSubchannel>, |
|
|
|
|
RefCountedPtrLess<SubchannelWrapper>> |
|
|
|
|
pending_subchannel_updates_; |
|
|
|
|
|
|
|
|
|
//
|
|
|
|
@ -314,7 +314,7 @@ class ChannelData { |
|
|
|
|
// synchronously via grpc_channel_num_external_connectivity_watchers().
|
|
|
|
|
//
|
|
|
|
|
mutable Mutex external_watchers_mu_; |
|
|
|
|
Map<grpc_closure*, ExternalConnectivityWatcher*> external_watchers_; |
|
|
|
|
std::map<grpc_closure*, ExternalConnectivityWatcher*> external_watchers_; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
//
|
|
|
|
@ -1107,7 +1107,7 @@ class ChannelData::SubchannelWrapper : public SubchannelInterface { |
|
|
|
|
// subchannel. This is needed so that when the LB policy calls
|
|
|
|
|
// CancelConnectivityStateWatch() with its watcher, we know the
|
|
|
|
|
// corresponding WrapperWatcher to cancel on the underlying subchannel.
|
|
|
|
|
Map<ConnectivityStateWatcherInterface*, WatcherWrapper*> watcher_map_; |
|
|
|
|
std::map<ConnectivityStateWatcherInterface*, WatcherWrapper*> watcher_map_; |
|
|
|
|
// To be accessed only in the control plane combiner.
|
|
|
|
|
RefCountedPtr<ConnectedSubchannel> connected_subchannel_; |
|
|
|
|
// To be accessed only in the data plane mutex.
|
|
|
|
|