Skip to content

Commit

Permalink
Merge pull request #2076 from CortexFoundation/dev
Browse files Browse the repository at this point in the history
core/state/snapshot: acquire the lock on Release
  • Loading branch information
ucwong committed Jun 24, 2024
2 parents 92c1c5f + e2c622d commit 31652fe
Showing 1 changed file with 7 additions and 4 deletions.
11 changes: 7 additions & 4 deletions core/state/snapshot/snapshot.go
Original file line number Diff line number Diff line change
Expand Up @@ -670,6 +670,9 @@ func diffToDisk(bottom *diffLayer) *diskLayer {

// Release releases resources
func (t *Tree) Release() {
t.lock.RLock()
defer t.lock.RUnlock()

if dl := t.disklayer(); dl != nil {
dl.Release()
}
Expand Down Expand Up @@ -851,8 +854,8 @@ func (t *Tree) diskRoot() common.Hash {
// generating is an internal helper function which reports whether the snapshot
// is still under the construction.
func (t *Tree) generating() (bool, error) {
t.lock.Lock()
defer t.lock.Unlock()
t.lock.RLock()
defer t.lock.RUnlock()

layer := t.disklayer()
if layer == nil {
Expand All @@ -865,8 +868,8 @@ func (t *Tree) generating() (bool, error) {

// DiskRoot is an external helper function to return the disk layer root.
func (t *Tree) DiskRoot() common.Hash {
t.lock.Lock()
defer t.lock.Unlock()
t.lock.RLock()
defer t.lock.RUnlock()

return t.diskRoot()
}

0 comments on commit 31652fe

Please sign in to comment.