From afa3c72c40eee45dfbf3cbc40505b78cb2c3c6b2 Mon Sep 17 00:00:00 2001
From: ferhat elmas <elmas.ferhat@gmail.com>
Date: Mon, 18 Dec 2017 04:03:48 +0100
Subject: p2p/discover: fix leaked goroutine in data expiration

---
 p2p/discover/database.go | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

(limited to 'p2p')

diff --git a/p2p/discover/database.go b/p2p/discover/database.go
index 7206a63c6..b136609f2 100644
--- a/p2p/discover/database.go
+++ b/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
 		}
-- 
cgit v1.2.3