From 62190acfb144c7be74bc381dac39a0ce2fc55e0b Mon Sep 17 00:00:00 2001 From: Oleg Kovalov Date: Mon, 5 Aug 2024 17:04:47 +0200 Subject: [PATCH] refactor(share): use sync.Once instead of mutex for init (#3625) --- share/empty.go | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/share/empty.go b/share/empty.go index ef3d088e1d..c95ce58192 100644 --- a/share/empty.go +++ b/share/empty.go @@ -30,7 +30,7 @@ func EmptyBlockShares() []Share { } var ( - emptyMu sync.Mutex + emptyOnce sync.Once emptyBlockRoot *Root emptyBlockEDS *rsmt2d.ExtendedDataSquare emptyBlockShares []Share @@ -38,12 +38,10 @@ var ( // initEmpty enables lazy initialization for constant empty block data. func initEmpty() { - emptyMu.Lock() - defer emptyMu.Unlock() - if emptyBlockRoot != nil { - return - } + emptyOnce.Do(computeEmpty) +} +func computeEmpty() { // compute empty block EDS and DAH for it result := shares.TailPaddingShares(appconsts.MinShareCount) emptyBlockShares = shares.ToBytes(result)