etcdmain: fix unstoppable startEtcd function

We should wrap the blocking function with a closure. And first
creates a go routine to execute the function. Or the inner function
blocks before creating the go routine.
This commit is contained in:
Xiang Li 2015-11-17 09:03:56 -08:00
parent 8af76115cb
commit 9e4a003fb0

View File

@ -323,7 +323,7 @@ func startEtcd(cfg *config) (<-chan struct{}, error) {
grpcServer := grpc.NewServer()
etcdserverpb.RegisterKVServer(grpcServer, v3rpc.NewKVServer(s))
etcdserverpb.RegisterWatchServer(grpcServer, v3rpc.NewWatchServer(s.Watchable()))
go plog.Fatal(grpcServer.Serve(v3l))
go func() { plog.Fatal(grpcServer.Serve(v3l)) }()
}
return s.StopNotify(), nil