From 50c0b662cfeeee8b8f14ff8131429bfd1e8eaf16 Mon Sep 17 00:00:00 2001
From: atvanguard <93arpit@gmail.com>
Date: Wed, 6 May 2020 17:14:53 +0530
Subject: [PATCH] Remove once.do

---
 consensus/bor/api.go | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/consensus/bor/api.go b/consensus/bor/api.go
index d5de0a61c..672d37821 100644
--- a/consensus/bor/api.go
+++ b/consensus/bor/api.go
@@ -35,7 +35,6 @@ import (
 var (
 	// MaxCheckpointLength is the maximum number of blocks that can be requested for constructing a checkpoint root hash
 	MaxCheckpointLength = uint64(math.Pow(2, 15))
-	once                sync.Once
 )
 
 // API is a user facing RPC API to allow controlling the signer and voting
@@ -124,13 +123,7 @@ func (api *API) GetCurrentValidators() ([]*Validator, error) {
 
 // GetRootHash returns the merkle root of the start to end block headers
 func (api *API) GetRootHash(start int64, end int64) ([]byte, error) {
-	var err error
-	once.Do(func() {
-		if api.rootHashCache == nil {
-			api.rootHashCache, err = lru.NewARC(10)
-		}
-	})
-	if err != nil {
+	if err := api.initializeRootHashCache(); err != nil {
 		return nil, err
 	}
 	key := getRootHashKey(start, end)
@@ -184,6 +177,14 @@ func (api *API) GetRootHash(start int64, end int64) ([]byte, error) {
 	return root, nil
 }
 
+func (api *API) initializeRootHashCache() error {
+	var err error
+	if api.rootHashCache == nil {
+		api.rootHashCache, err = lru.NewARC(10)
+	}
+	return err
+}
+
 func getRootHashKey(start int64, end int64) string {
 	return strconv.FormatInt(start, 10) + "-" + strconv.FormatInt(end, 10)
 }
-- 
GitLab