in internal/cloudsql/instance.go [319:336]
func (i *RefreshAheadCache) refreshOperation(ctx context.Context) (*refreshOperation, error) {
i.mu.RLock()
cur := i.cur
i.mu.RUnlock()
var err error
select {
case <-cur.ready:
err = cur.err
case <-ctx.Done():
err = ctx.Err()
case <-i.ctx.Done():
err = i.ctx.Err()
}
if err != nil {
return nil, err
}
return cur, nil
}