From 59ef9d9309d15546a08fd8419ebefc8fcf178e06 Mon Sep 17 00:00:00 2001 From: Alexey Shekhirin <5773434+shekhirin@users.noreply.github.com> Date: Mon, 17 Mar 2025 21:56:24 +0000 Subject: [PATCH] perf(tree): do not wait for the sparse trie to drop (#15092) Co-authored-by: Matthias Seitz --- crates/engine/tree/src/tree/payload_processor/sparse_trie.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/crates/engine/tree/src/tree/payload_processor/sparse_trie.rs b/crates/engine/tree/src/tree/payload_processor/sparse_trie.rs index 7311e0ac2a..e1aeaf5969 100644 --- a/crates/engine/tree/src/tree/payload_processor/sparse_trie.rs +++ b/crates/engine/tree/src/tree/payload_processor/sparse_trie.rs @@ -49,7 +49,10 @@ where /// This waits for new incoming [`SparseTrieUpdate`]. /// /// This concludes once the last trie update has been received. - pub(super) fn run(self) -> Result { + /// + /// NOTE: This function does not take `self` by value to prevent blocking on [`SparseStateTrie`] + /// drop. + pub(super) fn run(&self) -> Result { let now = Instant::now(); let provider_ro = self.config.consistent_view.provider_ro()?; let in_memory_trie_cursor = InMemoryTrieCursorFactory::new(