diff --git a/grpc.go b/grpc.go index 671f2c0..4015780 100644 --- a/grpc.go +++ b/grpc.go @@ -659,12 +659,10 @@ func (g *grpcServer) Register() error { registered := g.registered g.Unlock() - if registered { - return nil - } - - if logger.V(logger.InfoLevel, logger.DefaultLogger) { - logger.Infof("Registry [%s] Registering node: %s", config.Registry.String(), node.Id) + if !registered { + if logger.V(logger.InfoLevel, logger.DefaultLogger) { + logger.Infof("Registry [%s] Registering node: %s", config.Registry.String(), node.Id) + } } // create registry options @@ -674,6 +672,11 @@ func (g *grpcServer) Register() error { return err } + // already registered? don't need to register subscribers + if registered { + return nil + } + g.Lock() defer g.Unlock() @@ -784,10 +787,10 @@ func (g *grpcServer) Start() error { g.RUnlock() return nil } - config := g.Options() - g.RUnlock() + config := g.Options() + // micro: config.Transport.Listen(config.Address) var ts net.Listener @@ -819,11 +822,10 @@ func (g *grpcServer) Start() error { } g.Lock() g.opts.Address = ts.Addr().String() - subscribes := g.subscribers g.Unlock() // only connect if we're subscribed - if len(subscribes) > 0 { + if len(g.subscribers) > 0 { // connect to the broker if err := config.Broker.Connect(); err != nil { return err