perf: Improve kernel management logic & add more dev mode logs

This commit is contained in:
wonfen
2025-02-09 14:16:43 +08:00
parent ebe0899eb1
commit ff2cf30238
8 changed files with 416 additions and 54 deletions

View File

@@ -135,10 +135,36 @@ pub fn toggle_tun_mode() {
}
pub fn quit(code: Option<i32>) {
println!("Starting application quit process");
log::info!(target: "app", "Starting application quit process");
let app_handle = handle::Handle::global().app_handle().unwrap();
handle::Handle::global().set_is_exiting();
resolve::resolve_reset();
log_err!(handle::Handle::global().get_window().unwrap().close());
// 立即关闭窗口,让用户感知到退出开始
if let Some(window) = handle::Handle::global().get_window() {
let _ = window.close();
}
// 后台执行所有清理工作
let app_handle_clone = app_handle.clone();
tauri::async_runtime::spawn(async move {
// 1. 发送停止内核指令
let _ = CoreManager::global().stop_core().await;
// 2. 重置系统代理
resolve::resolve_reset();
// 3. 保存窗口状态
let _ = app_handle_clone.save_window_state(StateFlags::default());
println!("Cleanup tasks completed in background");
log::info!(target: "app", "Cleanup tasks completed in background");
});
// 主线程立即退出
println!("Exiting application with code: {:?}", code);
log::info!(target: "app", "Exiting application with code: {:?}", code);
app_handle.exit(code.unwrap_or(0));
}