mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-20 10:52:25 +00:00
core/state/snapshot: avoid waiting on exited generator in Disable
This commit is contained in:
parent
368eaa8e50
commit
d91f53c9eb
1 changed files with 8 additions and 0 deletions
|
|
@ -258,6 +258,14 @@ func (t *Tree) Disable() {
|
||||||
for _, layer := range t.layers {
|
for _, layer := range t.layers {
|
||||||
switch layer := layer.(type) {
|
switch layer := layer.(type) {
|
||||||
case *diskLayer:
|
case *diskLayer:
|
||||||
|
|
||||||
|
layer.lock.RLock()
|
||||||
|
generating := layer.genMarker != nil
|
||||||
|
layer.lock.RUnlock()
|
||||||
|
if !generating {
|
||||||
|
// Generator is already aborted or finished
|
||||||
|
break
|
||||||
|
}
|
||||||
// If the base layer is generating, abort it
|
// If the base layer is generating, abort it
|
||||||
if layer.genAbort != nil {
|
if layer.genAbort != nil {
|
||||||
abort := make(chan *generatorStats)
|
abort := make(chan *generatorStats)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue