router/registry: fix not started bug (#1877)

This commit is contained in:
ben-toogood 2020-07-28 09:01:08 +01:00 committed by GitHub
parent f17e4fdb44
commit cb4a2864da
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,7 +1,6 @@
package registry
import (
"errors"
"fmt"
"sort"
"strings"
@ -55,6 +54,9 @@ func NewRouter(opts ...router.Option) router.Router {
// create the new table, passing the fetchRoute method in as a fallback if
// the table doesn't contain the result for a query.
r.table = newTable(r.fetchRoutes)
// start the router
r.start()
return r
}
@ -545,13 +547,6 @@ func (r *rtr) Advertise() (<-chan *router.Advert, error) {
r.Lock()
defer r.Unlock()
if r.running {
return nil, errors.New("cannot re-advertise, already running")
}
// start the router
r.start()
// we're mutating the subscribers so they need to be locked also
r.sub.Lock()
defer r.sub.Unlock()