Remove once.do

This commit is contained in:
atvanguard 2020-05-06 17:14:53 +05:30
parent 54bbdff1e4
commit 50c0b662cf

View file

@ -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)
}