From 294d980b5237535f2eb24cb81e890d0766576beb Mon Sep 17 00:00:00 2001 From: GyDi Date: Sat, 22 Oct 2022 13:55:06 +0800 Subject: [PATCH] fix: kill clash when exit in service mode, close #241 --- src-tauri/src/core/service.rs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src-tauri/src/core/service.rs b/src-tauri/src/core/service.rs index a2ce71e..8cc2ed7 100644 --- a/src-tauri/src/core/service.rs +++ b/src-tauri/src/core/service.rs @@ -22,6 +22,9 @@ pub struct Service { sidecar: Option, logs: Arc>>, + + #[allow(unused)] + use_service_mode: bool, } impl Service { @@ -31,6 +34,7 @@ impl Service { Service { sidecar: None, logs: Arc::new(RwLock::new(queue)), + use_service_mode: false, } } @@ -46,6 +50,8 @@ impl Service { verge.enable_service_mode.clone().unwrap_or(false) }; + self.use_service_mode = enable; + if !enable { return self.start_clash_by_sidecar(); } @@ -74,14 +80,8 @@ impl Service { { let _ = self.stop_clash_by_sidecar(); - let enable = { - let data = Data::global(); - let verge = data.verge.lock(); - verge.enable_service_mode.clone().unwrap_or(false) - }; - - if enable { - tauri::async_runtime::spawn(async move { + if self.use_service_mode { + tauri::async_runtime::block_on(async move { log_if_err!(Self::stop_clash_by_service().await); }); }