mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-19 19:30:44 +00:00
core/rawdb: fix race condition in resettableFreezer write operations
This commit is contained in:
parent
a4b3898f90
commit
da5f3919ed
1 changed files with 6 additions and 6 deletions
|
|
@ -170,8 +170,8 @@ func (f *resettableFreezer) ReadAncients(fn func(ethdb.AncientReaderOp) error) (
|
||||||
|
|
||||||
// ModifyAncients runs the given write operation.
|
// ModifyAncients runs the given write operation.
|
||||||
func (f *resettableFreezer) ModifyAncients(fn func(ethdb.AncientWriteOp) error) (writeSize int64, err error) {
|
func (f *resettableFreezer) ModifyAncients(fn func(ethdb.AncientWriteOp) error) (writeSize int64, err error) {
|
||||||
f.lock.RLock()
|
f.lock.Lock()
|
||||||
defer f.lock.RUnlock()
|
defer f.lock.Unlock()
|
||||||
|
|
||||||
return f.freezer.ModifyAncients(fn)
|
return f.freezer.ModifyAncients(fn)
|
||||||
}
|
}
|
||||||
|
|
@ -179,8 +179,8 @@ func (f *resettableFreezer) ModifyAncients(fn func(ethdb.AncientWriteOp) error)
|
||||||
// TruncateHead discards any recent data above the provided threshold number.
|
// TruncateHead discards any recent data above the provided threshold number.
|
||||||
// It returns the previous head number.
|
// It returns the previous head number.
|
||||||
func (f *resettableFreezer) TruncateHead(items uint64) (uint64, error) {
|
func (f *resettableFreezer) TruncateHead(items uint64) (uint64, error) {
|
||||||
f.lock.RLock()
|
f.lock.Lock()
|
||||||
defer f.lock.RUnlock()
|
defer f.lock.Unlock()
|
||||||
|
|
||||||
return f.freezer.TruncateHead(items)
|
return f.freezer.TruncateHead(items)
|
||||||
}
|
}
|
||||||
|
|
@ -188,8 +188,8 @@ func (f *resettableFreezer) TruncateHead(items uint64) (uint64, error) {
|
||||||
// TruncateTail discards any recent data below the provided threshold number.
|
// TruncateTail discards any recent data below the provided threshold number.
|
||||||
// It returns the previous value
|
// It returns the previous value
|
||||||
func (f *resettableFreezer) TruncateTail(tail uint64) (uint64, error) {
|
func (f *resettableFreezer) TruncateTail(tail uint64) (uint64, error) {
|
||||||
f.lock.RLock()
|
f.lock.Lock()
|
||||||
defer f.lock.RUnlock()
|
defer f.lock.Unlock()
|
||||||
|
|
||||||
return f.freezer.TruncateTail(tail)
|
return f.freezer.TruncateTail(tail)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue