From b441f4b643af27a0fb351dd18128d07bc458cbf8 Mon Sep 17 00:00:00 2001 From: Tunglies <77394545+Tunglies@users.noreply.github.com> Date: Thu, 5 Feb 2026 15:24:23 +0800 Subject: [PATCH] feat: limit blocking threads to 4, and naming tokio threads --- src-tauri/src/lib.rs | 1 + src-tauri/src/main.rs | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 1752992c4..1e31fd122 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -10,6 +10,7 @@ mod feat; mod module; mod process; pub mod utils; + use crate::constants::files; use crate::{ core::handle, diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index fa3c6905e..af799b122 100755 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -1,5 +1,24 @@ #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] + +use std::sync::atomic::{AtomicUsize, Ordering}; + fn main() { + #[allow(clippy::unwrap_used)] + let tokio_runtime = tokio::runtime::Builder::new_multi_thread() + // TODO: limit the number of worker threads + // .worker_threads(4) + .max_blocking_threads(4) + .enable_all() + .thread_name_fn(|| { + static ATOMIC_ID: AtomicUsize = AtomicUsize::new(0); + let id = ATOMIC_ID.fetch_add(1, Ordering::SeqCst); + format!("clash-verge-runtime-{id}") + }) + .build() + .unwrap(); + let tokio_handle = tokio_runtime.handle(); + tauri::async_runtime::set(tokio_handle.clone()); + #[cfg(feature = "tokio-trace")] console_subscriber::init();