From 62b2093da50fee53da880553e5ef3c6f2d7a29c1 Mon Sep 17 00:00:00 2001 From: bradyjoestar Date: Fri, 17 Aug 2018 15:59:46 +0800 Subject: [PATCH] ABCIAppClient conn close (#2236) Refs https://github.com/grpc/grpc-go/issues/2264 --- abci/client/grpc_client.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/abci/client/grpc_client.go b/abci/client/grpc_client.go index a1f099468..4f37b17b6 100644 --- a/abci/client/grpc_client.go +++ b/abci/client/grpc_client.go @@ -22,6 +22,7 @@ type grpcClient struct { mustConnect bool client types.ABCIApplicationClient + conn *grpc.ClientConn mtx sync.Mutex addr string @@ -60,6 +61,7 @@ RETRY_LOOP: cli.Logger.Info("Dialed server. Waiting for echo.", "addr", cli.addr) client := types.NewABCIApplicationClient(conn) + cli.conn = conn ENSURE_CONNECTED: for { @@ -78,12 +80,10 @@ RETRY_LOOP: func (cli *grpcClient) OnStop() { cli.BaseService.OnStop() - cli.mtx.Lock() - defer cli.mtx.Unlock() - // TODO: how to close conn? its not a net.Conn and grpc doesn't expose a Close() - /*if cli.client.conn != nil { - cli.client.conn.Close() - }*/ + + if cli.conn != nil { + cli.conn.Close() + } } func (cli *grpcClient) StopForError(err error) {