@@ -93,47 +93,6 @@ func newCCResolverWrapper(cc *ClientConn) (*ccResolverWrapper, error) {
93
93
return ccr , nil
94
94
}
95
95
96
- func (ccr * ccResolverWrapper ) start () {
97
- go ccr .watcher ()
98
- }
99
-
100
- // watcher processes address updates and service config updates sequentially.
101
- // Otherwise, we need to resolve possible races between address and service
102
- // config (e.g. they specify different balancer types).
103
- func (ccr * ccResolverWrapper ) watcher () {
104
- for {
105
- select {
106
- case <- ccr .done :
107
- return
108
- default :
109
- }
110
-
111
- select {
112
- case addrs := <- ccr .addrCh :
113
- select {
114
- case <- ccr .done :
115
- return
116
- default :
117
- }
118
- grpclog .Infof ("ccResolverWrapper: sending new addresses to cc: %v" , addrs )
119
- if channelz .IsOn () {
120
- ccr .addChannelzTraceEvent (addrs )
121
- }
122
- ccr .cc .handleResolvedAddrs (addrs , nil )
123
- case sc := <- ccr .scCh :
124
- select {
125
- case <- ccr .done :
126
- return
127
- default :
128
- }
129
- grpclog .Infof ("ccResolverWrapper: got new service config: %v" , sc )
130
- ccr .cc .handleServiceConfig (sc )
131
- case <- ccr .done :
132
- return
133
- }
134
- }
135
- }
136
-
137
96
func (ccr * ccResolverWrapper ) resolveNow (o resolver.ResolveNowOption ) {
138
97
ccr .resolver .ResolveNow (o )
139
98
}
@@ -146,20 +105,27 @@ func (ccr *ccResolverWrapper) close() {
146
105
// NewAddress is called by the resolver implemenetion to send addresses to gRPC.
147
106
func (ccr * ccResolverWrapper ) NewAddress (addrs []resolver.Address ) {
148
107
select {
149
- case <- ccr .addrCh :
108
+ case <- ccr .done :
109
+ return
150
110
default :
151
111
}
152
- ccr .addrCh <- addrs
112
+ grpclog .Infof ("ccResolverWrapper: sending new addresses to cc: %v" , addrs )
113
+ if channelz .IsOn () {
114
+ ccr .addChannelzTraceEvent (addrs )
115
+ }
116
+ ccr .cc .handleResolvedAddrs (addrs , nil )
153
117
}
154
118
155
119
// NewServiceConfig is called by the resolver implemenetion to send service
156
120
// configs to gRPC.
157
121
func (ccr * ccResolverWrapper ) NewServiceConfig (sc string ) {
158
122
select {
159
- case <- ccr .scCh :
123
+ case <- ccr .done :
124
+ return
160
125
default :
161
126
}
162
- ccr .scCh <- sc
127
+ grpclog .Infof ("ccResolverWrapper: got new service config: %v" , sc )
128
+ ccr .cc .handleServiceConfig (sc )
163
129
}
164
130
165
131
func (ccr * ccResolverWrapper ) addChannelzTraceEvent (addrs []resolver.Address ) {
0 commit comments