From ede405c650273ee00e4b0408cac469c3c0b52748 Mon Sep 17 00:00:00 2001 From: Truman Gao <106889354+tdgao@users.noreply.github.com> Date: Thu, 15 Jan 2026 13:43:52 -0700 Subject: [PATCH] fix: open path util freezing app (#5111) * fix open path util crashing app * use spawn blocking instead * fmt --- apps/app/src/api/utils.rs | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/apps/app/src/api/utils.rs b/apps/app/src/api/utils.rs index e96186f5..1f7195a4 100644 --- a/apps/app/src/api/utils.rs +++ b/apps/app/src/api/utils.rs @@ -93,19 +93,24 @@ pub fn highlight_in_folder( } #[tauri::command] -pub fn open_path(app: tauri::AppHandle, path: PathBuf) { - if let Err(e) = app.opener().open_path(path.to_string_lossy(), None::<&str>) - { - tracing::error!("Failed to open path: {}", e); - } +pub async fn open_path(app: tauri::AppHandle, path: PathBuf) { + tauri::async_runtime::spawn_blocking(move || { + if let Err(e) = + app.opener().open_path(path.to_string_lossy(), None::<&str>) + { + tracing::error!("Failed to open path: {}", e); + } + }) + .await + .ok(); } #[tauri::command] -pub fn show_launcher_logs_folder(app: tauri::AppHandle) { +pub async fn show_launcher_logs_folder(app: tauri::AppHandle) { let path = DirectoryInfo::launcher_logs_dir().unwrap_or_default(); // failure to get folder just opens filesystem // (ie: if in debug mode only and launcher_logs never created) - open_path(app, path); + open_path(app, path).await; } // Get opening command