|
|
@@ -1032,7 +1032,10 @@ func (pool *TxPool) runReorg(done chan struct{}, reset *txpoolResetRequest, dirt
|
|
|
defer close(done)
|
|
|
|
|
|
var promoteAddrs []common.Address
|
|
|
- if dirtyAccounts != nil {
|
|
|
+ if dirtyAccounts != nil && reset == nil {
|
|
|
+ // Only dirty accounts need to be promoted, unless we're resetting.
|
|
|
+ // For resets, all addresses in the tx queue will be promoted and
|
|
|
+ // the flatten operation can be avoided.
|
|
|
promoteAddrs = dirtyAccounts.flatten()
|
|
|
}
|
|
|
pool.mu.Lock()
|
|
|
@@ -1048,7 +1051,7 @@ func (pool *TxPool) runReorg(done chan struct{}, reset *txpoolResetRequest, dirt
|
|
|
}
|
|
|
}
|
|
|
// Reset needs promote for all addresses
|
|
|
- promoteAddrs = promoteAddrs[:0]
|
|
|
+ promoteAddrs = make([]common.Address, 0, len(pool.queue))
|
|
|
for addr := range pool.queue {
|
|
|
promoteAddrs = append(promoteAddrs, addr)
|
|
|
}
|