Slide 6
Slide 6 text
Shockingly, this type of check doesn't work too
well without concurrency
topologies := make([]string, nNodes)
masters := make(map[string]bool)
c := make(chan string, nNodes)
for _, node := range nodes {
go getTopology(node, c)
}
for i, _ := range nodes {
topologies[i] = <-c
}
masterList := make([]string, 0)
for _, topology := range topologies {
topologyMaster := getMaster(topology, nodes)
if _, ok := masters[topologyMaster]; !ok {
masterList = append(masterList, topologyMaster)
}
masters[topologyMaster] = true
}