Browse Source

p2p/discover: fix leaked goroutine in data expiration

ferhat elmas 8 năm trước cách đây
mục cha
commit
afa3c72c40
1 tập tin đã thay đổi với 3 bổ sung3 xóa
  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
 		}