cleanup router watcher logic

This commit is contained in:
Asim Aslam 2020-08-08 01:04:38 +01:00
parent e7cc3c2210
commit fc67593ee4

View File

@ -570,39 +570,27 @@ func (r *rtr) start() error {
}()
go func() {
var err error
var w registry.Watcher
for {
select {
case <-r.exit:
if w != nil {
w.Stop()
}
return
default:
if w == nil {
w, err = r.options.Registry.Watch(registry.WatchDomain(registry.WildcardDomain))
if err != nil {
if logger.V(logger.WarnLevel, logger.DefaultLogger) {
logger.Warnf("failed creating registry watcher: %v", err)
}
time.Sleep(time.Second)
continue
w, err := r.options.Registry.Watch(registry.WatchDomain(registry.WildcardDomain))
if err != nil {
if logger.V(logger.WarnLevel, logger.DefaultLogger) {
logger.Warnf("failed creating registry watcher: %v", err)
}
time.Sleep(time.Second)
continue
}
// watchRegistry calls stop when it's done
if err := r.watchRegistry(w); err != nil {
if logger.V(logger.WarnLevel, logger.DefaultLogger) {
logger.Warnf("Error watching the registry: %v", err)
}
time.Sleep(time.Second)
}
if w != nil {
w.Stop()
w = nil
}
}
}
}()