Merge pull request #1254 from mrjana/networkdb

Make sure to notify watchers on node going away
This commit is contained in:
Alessandro Boch 2016-06-13 12:18:07 -07:00 committed by GitHub
commit 174e19f64f
1 changed files with 9 additions and 2 deletions

View File

@ -193,7 +193,10 @@ func (nDB *NetworkDB) reapNetworks() {
}
func (nDB *NetworkDB) reapTableEntries() {
var paths []string
var (
paths []string
entries []*entry
)
now := time.Now()
@ -209,12 +212,14 @@ func (nDB *NetworkDB) reapTableEntries() {
}
paths = append(paths, path)
entries = append(entries, entry)
return false
})
nDB.RUnlock()
nDB.Lock()
for _, path := range paths {
for i, path := range paths {
entry := entries[i]
params := strings.Split(path[1:], "/")
tname := params[0]
nid := params[1]
@ -227,6 +232,8 @@ func (nDB *NetworkDB) reapTableEntries() {
if _, ok := nDB.indexes[byNetwork].Delete(fmt.Sprintf("/%s/%s/%s", nid, tname, key)); !ok {
logrus.Errorf("Could not delete entry in network %s with table name %s and key %s as it does not exist", nid, tname, key)
}
nDB.broadcaster.Write(makeEvent(opDelete, tname, nid, key, entry.value))
}
nDB.Unlock()
}