From 7ddb40239bed22774c0341c572f22ed34ea78f99 Mon Sep 17 00:00:00 2001
From: ucwong <ucwong@126.com>
Date: Tue, 26 May 2020 17:03:37 +0800
Subject: [PATCH] ethdb/leveldb: use timer instead of time.After (#21066)

---
 ethdb/leveldb/leveldb.go | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/ethdb/leveldb/leveldb.go b/ethdb/leveldb/leveldb.go
index 7ff52e59f..80380db32 100644
--- a/ethdb/leveldb/leveldb.go
+++ b/ethdb/leveldb/leveldb.go
@@ -248,6 +248,9 @@ func (db *Database) meter(refresh time.Duration) {
 		merr error
 	)
 
+	timer := time.NewTimer(refresh)
+	defer timer.Stop()
+
 	// Iterate ad infinitum and collect the stats
 	for i := 1; errc == nil && merr == nil; i++ {
 		// Retrieve the database stats
@@ -399,7 +402,8 @@ func (db *Database) meter(refresh time.Duration) {
 		select {
 		case errc = <-db.quitChan:
 			// Quit requesting, stop hammering the database
-		case <-time.After(refresh):
+		case <-timer.C:
+			timer.Reset(refresh)
 			// Timeout, gather a new set of stats
 		}
 	}
-- 
GitLab