about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--crates/rust-analyzer/src/task_pool.rs8
1 files changed, 7 insertions, 1 deletions
diff --git a/crates/rust-analyzer/src/task_pool.rs b/crates/rust-analyzer/src/task_pool.rs
index 83389373903..aeeb3b7c582 100644
--- a/crates/rust-analyzer/src/task_pool.rs
+++ b/crates/rust-analyzer/src/task_pool.rs
@@ -9,7 +9,13 @@ pub(crate) struct TaskPool<T> {
 
 impl<T> TaskPool<T> {
     pub(crate) fn new(sender: Sender<T>) -> TaskPool<T> {
-        TaskPool { sender, inner: threadpool::ThreadPool::default() }
+        const STACK_SIZE: usize = 8 * 1024 * 1024;
+
+        let inner = threadpool::Builder::new()
+            .thread_name("Worker".into())
+            .thread_stack_size(STACK_SIZE)
+            .build();
+        TaskPool { sender, inner }
     }
 
     pub(crate) fn spawn<F>(&mut self, task: F)