From 0c28b6a11afde43ec20da59521423714123aca72 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Mon, 17 Jun 2024 11:52:05 -0400 Subject: [PATCH] rustdoc: Don't start indexing if a crate is already being indexed (#13149) This PR updates the rustdoc indexing to not start indexing a crate that is already being indexed. Currently the indexing of a crate might get continuously interrupted by the user's typing, resulting in thrashing of the indexing task and never indexing the crate in its entirety. Release Notes: - N/A --- crates/rustdoc/src/store.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/crates/rustdoc/src/store.rs b/crates/rustdoc/src/store.rs index 50ebf83510f3db4880180776a7e1462eff3acfd1..56859144ff6f2b9114476ee454f73d04708d0027 100644 --- a/crates/rustdoc/src/store.rs +++ b/crates/rustdoc/src/store.rs @@ -89,6 +89,10 @@ impl RustdocStore { crate_name: CrateName, provider: Box, ) -> Shared>>> { + if let Some(existing_task) = self.indexing_tasks_by_crate.read().get(&crate_name) { + return existing_task.clone(); + } + let indexing_task = self .executor .spawn({