119
}
120
122
>
oldReady := r.dataReady.Load()
123
>
if oldReady == nil && enabled {
124
>
backgroundCtx := headers.SetCallerInfo(
125
>
context.Background(),
126
>
headers.SystemBackgroundHighCallerInfo,
127
>
)
128
>
newReady := &dataReady{
129
>
refresh: goro.NewHandle(backgroundCtx),
130
>
ready: make(chan struct{}),
131
>
}
132
>
if r.dataReady.CompareAndSwap(oldReady, newReady) {
133
>
newReady.refresh.Go(func(ctx context.Context) error {
134
>
return r.refreshEndpointsLoop(ctx, newReady)
135
>
})
136
}
137
} else if oldReady != nil && !enabled {