diff --git a/internal/registry/registry.go b/internal/registry/registry.go index 610e153..9e425d2 100644 --- a/internal/registry/registry.go +++ b/internal/registry/registry.go @@ -123,6 +123,15 @@ func (r *Registry) RemoveNode(node types.Node) error { func (r *Registry) Set(nodes map[string]types.Node) error { r.lock.Lock() + equalFunc := func(a, b types.Node) bool { + return a.Hostname == b.Hostname + } + + if maps.EqualFunc(r.nodes, nodes, equalFunc) { + r.lock.Unlock() + return nil + } + r.nodes = maps.Clone(nodes) snapshot := r.snapshot() r.lock.Unlock()