trie: avoid spawning goroutines for empty children

This commit is contained in:
Ömer Faruk IRMAK 2025-07-16 12:52:07 +03:00
parent e94123acc2
commit 99d4809db8

View file

@ -105,18 +105,18 @@ func (h *hasher) hashFullNodeChildren(n *fullNode) *fullNode {
var children [17]node var children [17]node
if h.parallel { if h.parallel {
var wg sync.WaitGroup var wg sync.WaitGroup
wg.Add(16)
for i := 0; i < 16; i++ { for i := 0; i < 16; i++ {
if child := n.Children[i]; child != nil {
wg.Add(1)
go func(i int) { go func(i int) {
hasher := newHasher(false) hasher := newHasher(false)
if child := n.Children[i]; child != nil {
children[i] = hasher.hash(child, false) children[i] = hasher.hash(child, false)
} else {
children[i] = nilValueNode
}
returnHasherToPool(hasher) returnHasherToPool(hasher)
wg.Done() wg.Done()
}(i) }(i)
} else {
children[i] = nilValueNode
}
} }
wg.Wait() wg.Wait()
} else { } else {