fix: khong panic khi spawn engine fail (UI khong thoat) + spawn.log chan doan (path + exists) + giu SF_PARENT_PID

This commit is contained in:
2026-08-09 08:51:21 +00:00
parent 6e962dc1b2
commit 63af8ec414
+28 -8
View File
@@ -25,15 +25,35 @@ pub fn run() {
} else { } else {
engine_dir.join("daw_engine") engine_dir.join("daw_engine")
}; };
let (_rx, child) = app // Ghi log spawn de chan doan (UI khong duoc panic/thoat — chi log)
.shell() let log_line = format!(
.command(engine_exe) "spawn daw_engine: {} exists={}\n",
engine_exe.display(),
engine_exe.exists()
);
if let Some(mut f) = std::fs::OpenOptions::new()
.create(true)
.append(true)
.open(engine_dir.join("spawn.log"))
.ok()
{
use std::io::Write;
let _ = f.write_all(log_line.as_bytes());
}
match app.shell().command(&engine_exe)
.env("SF_PARENT_PID", std::process::id().to_string()) .env("SF_PARENT_PID", std::process::id().to_string())
.spawn() .spawn() {
.expect("Failed to spawn daw_engine (onedir resource) — run build_windows.ps1 first"); Ok((_rx, child)) => {
app.manage(EngineProcess(Mutex::new(Some(child))));
app.manage(EngineProcess(Mutex::new(Some(child)))); println!("Python Background Engine started (localhost:8000, auto-fallback 8000-8010)");
println!("Python Background Engine started (localhost:8000, auto-fallback 8000-8010)"); }
Err(e) => {
// Khong panic: UI van mo, engine loi se hien trong UI loader
// ("Khong tim thay SonicForge Engine"). Log ro de chan doan.
println!("Failed to spawn daw_engine: {e}");
app.manage(EngineProcess(Mutex::new(None)));
}
}
Ok(()) Ok(())
}) })
.on_window_event(|window, event| { .on_window_event(|window, event| {