Unnamed repository; edit this file 'description' to name the repository.
-rw-r--r--crates/rust-analyzer/src/main_loop.rs3
1 files changed, 2 insertions, 1 deletions
diff --git a/crates/rust-analyzer/src/main_loop.rs b/crates/rust-analyzer/src/main_loop.rs
index e2909be41a..07414a6e49 100644
--- a/crates/rust-analyzer/src/main_loop.rs
+++ b/crates/rust-analyzer/src/main_loop.rs
@@ -3,6 +3,7 @@
use std::{
fmt,
+ ops::Div as _,
time::{Duration, Instant},
};
@@ -499,7 +500,7 @@ impl GlobalState {
tracing::trace!("updating notifications for {:?}", subscriptions);
// Split up the work on multiple threads, but we don't wanna fill the entire task pool with
// diagnostic tasks, so we limit the number of tasks to a quarter of the total thread pool.
- let max_tasks = self.config.main_loop_num_threads() / 4;
+ let max_tasks = self.config.main_loop_num_threads().div(4).max(1);
let chunk_length = subscriptions.len() / max_tasks;
let remainder = subscriptions.len() % max_tasks;