Explorar o código

p2p/discover: fix leaked goroutine in data expiration

ferhat elmas %!s(int64=8) %!d(string=hai) anos
pai
achega
afa3c72c40
Modificáronse 1 ficheiros con 3 adicións e 3 borrados
  1. 3 3
      p2p/discover/database.go

+ 3 - 3
p2p/discover/database.go

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