mirror of
https://github.com/clash-verge-rev/clash-verge-rev.git
synced 2026-01-29 00:35:38 +08:00
refactor: simplify app restart logic and improve error handling
This commit is contained in:
@@ -2,7 +2,7 @@ use crate::{
|
|||||||
config::Config,
|
config::Config,
|
||||||
core::{handle, tray, CoreManager},
|
core::{handle, tray, CoreManager},
|
||||||
ipc::IpcManager,
|
ipc::IpcManager,
|
||||||
logging, logging_error,
|
logging_error,
|
||||||
process::AsyncHandler,
|
process::AsyncHandler,
|
||||||
utils::{logging::Type, resolve},
|
utils::{logging::Type, resolve},
|
||||||
};
|
};
|
||||||
@@ -28,14 +28,22 @@ pub fn restart_clash_core() {
|
|||||||
/// Restart the application
|
/// Restart the application
|
||||||
pub fn restart_app() {
|
pub fn restart_app() {
|
||||||
AsyncHandler::spawn(move || async move {
|
AsyncHandler::spawn(move || async move {
|
||||||
logging_error!(Type::Core, true, CoreManager::global().stop_core().await);
|
// logging_error!(Type::Core, true, CoreManager::global().stop_core().await);
|
||||||
resolve::resolve_reset_async().await;
|
resolve::resolve_reset_async().await;
|
||||||
let Some(app_handle) = handle::Handle::global().app_handle() else {
|
|
||||||
logging!(error, Type::Core, "Failed to get app handle for restart");
|
handle::Handle::global()
|
||||||
return;
|
.app_handle()
|
||||||
};
|
.map(|app_handle| {
|
||||||
tokio::time::sleep(std::time::Duration::from_secs(1)).await;
|
tauri::process::restart(&app_handle.env());
|
||||||
tauri::process::restart(&app_handle.env());
|
})
|
||||||
|
.unwrap_or_else(|| {
|
||||||
|
logging_error!(
|
||||||
|
Type::System,
|
||||||
|
false,
|
||||||
|
"{}",
|
||||||
|
"Failed to get app handle for restart"
|
||||||
|
);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user