core: txpool listen for ChainHeadEvent instead of ChainEvent

Changed the transaction pool to listen for ChainHeadEvent when resetting
the state instead of ChainEvent. It makes very little sense to burst
through transactions while we are catching up (e.g., have more than one
block to process)
This commit is contained in:
Jeffrey Wilcke 2015-06-30 15:42:20 +02:00
parent c14f0a4471
commit a748afce03

View File

@ -65,7 +65,7 @@ func NewTxPool(eventMux *event.TypeMux, currentStateFn stateFn, gasLimitFn func(
gasLimit: gasLimitFn, gasLimit: gasLimitFn,
minGasPrice: new(big.Int), minGasPrice: new(big.Int),
pendingState: state.ManageState(currentStateFn()), pendingState: state.ManageState(currentStateFn()),
events: eventMux.Subscribe(ChainEvent{}, GasPriceChanged{}), events: eventMux.Subscribe(ChainHeadEvent{}, GasPriceChanged{}),
} }
go pool.eventLoop() go pool.eventLoop()
@ -80,7 +80,7 @@ func (pool *TxPool) eventLoop() {
pool.mu.Lock() pool.mu.Lock()
switch ev := ev.(type) { switch ev := ev.(type) {
case ChainEvent: case ChainHeadEvent:
pool.resetState() pool.resetState()
case GasPriceChanged: case GasPriceChanged:
pool.minGasPrice = ev.Price pool.minGasPrice = ev.Price