mirror of
https://github.com/hl-archive-node/nanoreth.git
synced 2025-12-06 10:59:55 +00:00
fix: use different cancel wrapper for prewarm tasks (#14221)
This commit is contained in:
@ -51,7 +51,7 @@ use reth_provider::{
|
||||
ExecutionOutcome, HashedPostStateProvider, ProviderError, StateCommitmentProvider,
|
||||
StateProviderBox, StateProviderFactory, StateReader, StateRootProvider, TransactionVariant,
|
||||
};
|
||||
use reth_revm::{cancelled::Cancelled, database::StateProviderDatabase};
|
||||
use reth_revm::{cancelled::ManualCancel, database::StateProviderDatabase};
|
||||
use reth_stages_api::ControlFlow;
|
||||
use reth_trie::{
|
||||
trie_cursor::InMemoryTrieCursorFactory, updates::TrieUpdates, HashedPostState,
|
||||
@ -2375,7 +2375,7 @@ where
|
||||
self.is_descendant_of_persisting_blocks(block.header());
|
||||
|
||||
// Atomic bool for letting the prewarm tasks know when to stop
|
||||
let cancel_execution = Cancelled::default();
|
||||
let cancel_execution = ManualCancel::default();
|
||||
|
||||
let (state_root_handle, state_root_task_config, state_root_sender, state_hook) =
|
||||
if is_descendant_of_persisting_blocks && self.config.use_state_root_task() {
|
||||
@ -2465,7 +2465,7 @@ where
|
||||
trace!(target: "engine::tree", elapsed = ?execution_time, number=?block_num_hash.number, "Executed block");
|
||||
|
||||
// Ensure that prewarm tasks don't send proof messages after state root sender is dropped
|
||||
drop(cancel_execution);
|
||||
cancel_execution.cancel();
|
||||
|
||||
if let Err(err) = self.consensus.validate_block_post_execution(
|
||||
&block,
|
||||
@ -2638,7 +2638,7 @@ where
|
||||
caches: ProviderCaches,
|
||||
cache_metrics: CachedStateMetrics,
|
||||
state_root_sender: Option<Sender<StateRootMessage>>,
|
||||
cancel_execution: Cancelled,
|
||||
cancel_execution: ManualCancel,
|
||||
) -> Result<(), InsertBlockErrorKind> {
|
||||
let Some(state_provider) = self.state_provider(block.parent_hash())? else {
|
||||
trace!(target: "engine::tree", parent=%block.parent_hash(), "Could not get state provider for prewarm");
|
||||
|
||||
Reference in New Issue
Block a user