From 9270a8becb6f77ee18cd8634d908f48b1c3029e6 Mon Sep 17 00:00:00 2001 From: Ben Adams Date: Sat, 8 Jun 2024 23:31:01 +0100 Subject: [PATCH] Remove parallel from withdrawal warmup --- .../Processing/BlockCachePreWarmer.cs | 39 ++++++++++--------- 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/src/Nethermind/Nethermind.Consensus/Processing/BlockCachePreWarmer.cs b/src/Nethermind/Nethermind.Consensus/Processing/BlockCachePreWarmer.cs index 80861c37636..fe9211b3663 100644 --- a/src/Nethermind/Nethermind.Consensus/Processing/BlockCachePreWarmer.cs +++ b/src/Nethermind/Nethermind.Consensus/Processing/BlockCachePreWarmer.cs @@ -72,30 +72,33 @@ void WarmupWithdrawals(ParallelOptions parallelOptions, IReleaseSpec spec, Block { if (spec.WithdrawalsEnabled && block.Withdrawals is not null) { - Parallel.For(0, block.Withdrawals.Length, parallelOptions, - i => + ReadOnlyTxProcessingEnv env = _envPool.Get(); + try + { + foreach (Withdrawal withdrawal in block.Withdrawals) { - ReadOnlyTxProcessingEnv env = _envPool.Get(); - try - { - env.StateProvider.WarmUp(block.Withdrawals[i].Address); - } - catch (Exception ex) - { - if (_logger.IsDebug) _logger.Error($"Error pre-warming withdrawal {i}", ex); - } - finally - { - env.Reset(); - _envPool.Return(env); - } - }); + if (parallelOptions.CancellationToken.IsCancellationRequested) return; + + env.StateProvider.WarmUp(withdrawal.Address); + } + } + catch (Exception ex) + { + if (_logger.IsDebug) _logger.Error($"Error pre-warming withdrawals", ex); + } + finally + { + env.Reset(); + _envPool.Return(env); + } } } void WarmupTransactions(ParallelOptions parallelOptions, IReleaseSpec spec, Block block, Hash256 stateRoot) { - Parallel.For(0, block.Transactions.Length, parallelOptions, i => + if (parallelOptions.CancellationToken.IsCancellationRequested) return; + + Parallel.For(0, block.Transactions.Length, parallelOptions, (i) => { // If the transaction has already been processed or being processed, exit early if (block.TransactionProcessed >= i) return;