// ResolveNow() method to ignore those calls if the ignoreResolveNow bit is set.
type ignoreResolveNowClientConn struct {
balancer.ClientConn
- ignoreResolveNow *uint32
+ ignoreResolveNow atomic.Bool
}
func newIgnoreResolveNowClientConn(cc balancer.ClientConn, ignore bool) *ignoreResolveNowClientConn {
- ret := &ignoreResolveNowClientConn{
- ClientConn: cc,
- ignoreResolveNow: new(uint32),
- }
+ ret := &ignoreResolveNowClientConn{ClientConn: cc}
ret.updateIgnoreResolveNow(ignore)
return ret
}
func (i *ignoreResolveNowClientConn) updateIgnoreResolveNow(b bool) {
- if b {
- atomic.StoreUint32(i.ignoreResolveNow, 1)
- return
- }
- atomic.StoreUint32(i.ignoreResolveNow, 0)
-
+ i.ignoreResolveNow.Store(b)
}
-func (i ignoreResolveNowClientConn) ResolveNow(o resolver.ResolveNowOptions) {
- if atomic.LoadUint32(i.ignoreResolveNow) != 0 {
+func (i *ignoreResolveNowClientConn) ResolveNow(o resolver.ResolveNowOptions) {
+ if i.ignoreResolveNow.Load() {
return
}
i.ClientConn.ResolveNow(o)