1
0
Fork 0

Compare commits

...

2 commits

3 changed files with 12 additions and 7 deletions

View file

@ -1,7 +0,0 @@
package main
import "fmt"
func main() {
fmt.Println("hivemind lite")
}

View file

@ -9,6 +9,9 @@ import (
"github.com/BurntSushi/toml" "github.com/BurntSushi/toml"
) )
// TODO: make all configs have a codegen verification and merging
// assume that 0 and "" are invalid values, i.e. use -1 for unset
type Configs struct { type Configs struct {
Master MasterConfig Master MasterConfig
Dns DnsConfig Dns DnsConfig

View file

@ -123,6 +123,15 @@ func (r *Registry) RemoveNode(node types.Node) error {
func (r *Registry) Set(nodes map[string]types.Node) error { func (r *Registry) Set(nodes map[string]types.Node) error {
r.lock.Lock() 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) r.nodes = maps.Clone(nodes)
snapshot := r.snapshot() snapshot := r.snapshot()
r.lock.Unlock() r.lock.Unlock()