From 0b691137057ab2f4bb4b7de27ed183b46fac7558 Mon Sep 17 00:00:00 2001 From: GalaIO Date: Mon, 30 Oct 2023 15:56:37 +0800 Subject: [PATCH] txpool: fix a potential crash issue in shutdown; (#1951) --- core/txpool/txpool.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/core/txpool/txpool.go b/core/txpool/txpool.go index 16ddec683a..7d9c2d4e92 100644 --- a/core/txpool/txpool.go +++ b/core/txpool/txpool.go @@ -319,11 +319,11 @@ func (p *TxPool) Pending(enforceTips bool) map[common.Address][]*LazyTransaction // SubscribeNewTxsEvent registers a subscription of NewTxsEvent and starts sending // events to the given channel. func (p *TxPool) SubscribeNewTxsEvent(ch chan<- core.NewTxsEvent) event.Subscription { - subs := make([]event.Subscription, len(p.subpools)) - for i, subpool := range p.subpools { + subs := make([]event.Subscription, 0, len(p.subpools)) + for _, subpool := range p.subpools { sub := subpool.SubscribeTransactions(ch) if sub != nil { // sub will be nil when subpool have been shut down - subs[i] = sub + subs = append(subs, sub) } } return p.subs.Track(event.JoinSubscriptions(subs...)) @@ -332,11 +332,11 @@ func (p *TxPool) SubscribeNewTxsEvent(ch chan<- core.NewTxsEvent) event.Subscrip // SubscribeNewTxsEvent registers a subscription of NewTxsEvent and starts sending // events to the given channel. func (p *TxPool) SubscribeReannoTxsEvent(ch chan<- core.ReannoTxsEvent) event.Subscription { - subs := make([]event.Subscription, len(p.subpools)) - for i, subpool := range p.subpools { + subs := make([]event.Subscription, 0, len(p.subpools)) + for _, subpool := range p.subpools { sub := subpool.SubscribeReannoTxsEvent(ch) if sub != nil { // sub will be nil when subpool have been shut down - subs[i] = sub + subs = append(subs, sub) } } return p.subs.Track(event.JoinSubscriptions(subs...))