p2p/discover: fix leaked goroutine in data expiration

This commit is contained in:
ferhat elmas 2017-12-18 04:03:48 +01:00
parent c6069a627c
commit afa3c72c40

View File

@ -226,14 +226,14 @@ func (db *nodeDB) ensureExpirer() {
// expirer should be started in a go routine, and is responsible for looping ad // expirer should be started in a go routine, and is responsible for looping ad
// infinitum and dropping stale data from the database. // infinitum and dropping stale data from the database.
func (db *nodeDB) expirer() { func (db *nodeDB) expirer() {
tick := time.Tick(nodeDBCleanupCycle) tick := time.NewTicker(nodeDBCleanupCycle)
defer tick.Stop()
for { for {
select { select {
case <-tick: case <-tick.C:
if err := db.expireNodes(); err != nil { if err := db.expireNodes(); err != nil {
log.Error("Failed to expire nodedb items", "err", err) log.Error("Failed to expire nodedb items", "err", err)
} }
case <-db.quit: case <-db.quit:
return return
} }