From 3f1de2400254956e474abfde1309b3ade09a7cff Mon Sep 17 00:00:00 2001 From: iamqizhao Date: Tue, 20 Sep 2016 18:53:56 -0700 Subject: [PATCH] fix some closing issues --- grpclb/grpclb.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/grpclb/grpclb.go b/grpclb/grpclb.go index 931a4d84..ee379a0e 100644 --- a/grpclb/grpclb.go +++ b/grpclb/grpclb.go @@ -271,22 +271,23 @@ func (b *balancer) Start(target string, config grpc.BalancerConfig) error { var err error creds := config.DialCreds if creds == nil { - cc, err = grpc.Dial(rb.addr.Addr, grpc.WithBlock(), grpc.WithInsecure()) + cc, err = grpc.Dial(rb.addr.Addr, grpc.WithInsecure()) } else { - cc, err = grpc.Dial(rb.addr.Addr, grpc.WithBlock(), grpc.WithTransportCredentials(creds)) + cc, err = grpc.Dial(rb.addr.Addr, grpc.WithTransportCredentials(creds)) } if err != nil { grpclog.Printf("Failed to setup a connection to the remote balancer %v: %v", rb.addr, err) return } - lbc := lbpb.NewLoadBalancerClient(cc) - go func() { + go func(cc *grpc.ClientConn) { + lbc := lbpb.NewLoadBalancerClient(cc) for { if retry := b.callRemoteBalancer(lbc); !retry { + cc.Close() return } } - }() + }(cc) } }() return nil