MCPcopy
hub / github.com/grpc/grpc-go / start

Method start

resolver_wrapper.go:68–97  ·  view source on GitHub ↗

start builds the name resolver using the resolver.Builder in cc and returns any error encountered. It must always be the first operation performed on any newly created ccResolverWrapper, except that close may be called instead.

()

Source from the content-addressed store, hash-verified

66// any error encountered. It must always be the first operation performed on
67// any newly created ccResolverWrapper, except that close may be called instead.
68func (ccr *ccResolverWrapper) start() error {
69 errCh := make(chan error)
70 ccr.serializer.TrySchedule(func(ctx context.Context) {
71 if ctx.Err() != nil {
72 errCh <- ctx.Err()
73 return
74 }
75 opts := resolver.BuildOptions{
76 DisableServiceConfig: ccr.cc.dopts.disableServiceConfig,
77 DialCreds: ccr.cc.dopts.copts.TransportCredentials,
78 CredsBundle: ccr.cc.dopts.copts.CredsBundle,
79 Dialer: ccr.cc.dopts.copts.Dialer,
80 Authority: ccr.cc.authority,
81 MetricsRecorder: ccr.cc.metricsRecorderList,
82 }
83 var err error
84 // The delegating resolver is used unless:
85 // - A custom dialer is provided via WithContextDialer dialoption or
86 // - Proxy usage is disabled through WithNoProxy dialoption.
87 // In these cases, the resolver is built based on the scheme of target,
88 // using the appropriate resolver builder.
89 if ccr.cc.dopts.copts.Dialer != nil || !ccr.cc.dopts.useProxy {
90 ccr.resolver, err = ccr.cc.resolverBuilder.Build(ccr.cc.parsedTarget, ccr, opts)
91 } else {
92 ccr.resolver, err = delegatingresolver.New(ccr.cc.parsedTarget, ccr, opts, ccr.cc.resolverBuilder, ccr.cc.dopts.enableLocalDNSResolution)
93 }
94 errCh <- err
95 })
96 return <-errCh
97}
98
99func (ccr *ccResolverWrapper) resolveNow(o resolver.ResolveNowOptions) {
100 ccr.serializer.TrySchedule(func(ctx context.Context) {

Callers

nothing calls this directly

Calls 4

NewFunction · 0.92
ErrMethod · 0.80
BuildMethod · 0.65
TryScheduleMethod · 0.45

Tested by

no test coverage detected