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:
+28
-8
@@ -25,15 +25,35 @@ pub fn run() {
|
||||
} else {
|
||||
engine_dir.join("daw_engine")
|
||||
};
|
||||
let (_rx, child) = app
|
||||
.shell()
|
||||
.command(engine_exe)
|
||||
// Ghi log spawn de chan doan (UI khong duoc panic/thoat — chi log)
|
||||
let log_line = format!(
|
||||
"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())
|
||||
.spawn()
|
||||
.expect("Failed to spawn daw_engine (onedir resource) — run build_windows.ps1 first");
|
||||
|
||||
app.manage(EngineProcess(Mutex::new(Some(child))));
|
||||
println!("Python Background Engine started (localhost:8000, auto-fallback 8000-8010)");
|
||||
.spawn() {
|
||||
Ok((_rx, child)) => {
|
||||
app.manage(EngineProcess(Mutex::new(Some(child))));
|
||||
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(())
|
||||
})
|
||||
.on_window_event(|window, event| {
|
||||
|
||||
Reference in New Issue
Block a user