diff --git a/core/tx_pool.go b/core/tx_pool.go index 9f57e25381..66c1fe99c8 100644 --- a/core/tx_pool.go +++ b/core/tx_pool.go @@ -818,7 +818,7 @@ func (pool *TxPool) AddRemotes(txs []*types.Transaction) []error { // addTx enqueues a single transaction into the pool if it is valid. func (pool *TxPool) addTx(tx *types.Transaction, local bool) error { - // caching signature check result before holding lock significantly improve concurrency + // Cache sender in transaction before obtaining lock (pool.signer is immutable) types.Sender(pool.signer, tx) pool.mu.Lock() @@ -839,11 +839,10 @@ func (pool *TxPool) addTx(tx *types.Transaction, local bool) error { // addTxs attempts to queue a batch of transactions if they are valid. func (pool *TxPool) addTxs(txs []*types.Transaction, local bool) []error { - // caching signature check result before holding lock significantly improve concurrency + // Cache senders in transactions before obtaining lock (pool.signer is immutable) for _, tx := range txs { types.Sender(pool.signer, tx) } - pool.mu.Lock() defer pool.mu.Unlock()