fix(store.go) expire should also notify all the watchers under the path

This commit is contained in:
Xiang Li 2013-12-10 15:17:13 -08:00
parent 59e98fcc62
commit 06473ba6fe

View File

@ -512,13 +512,19 @@ func (s *store) DeleteExpiredKeys(cutoff time.Time) {
break
}
s.ttlKeyHeap.pop()
node.Remove(true, true, nil)
s.CurrentIndex++
e := newEvent(Expire, node.Path, s.CurrentIndex, node.CreatedIndex)
callback := func(path string) { // notify function
// notify the watchers with deleted set true
s.WatcherHub.notifyWatchers(e, path, true)
}
s.ttlKeyHeap.pop()
node.Remove(true, true, callback)
s.Stats.Inc(ExpireCount)
s.WatcherHub.notify(newEvent(Expire, node.Path, s.CurrentIndex, node.CreatedIndex))
s.WatcherHub.notify(e)
}
}