refactor: rename sockPath to listen in pid lock, add startup timing instrumentation

This commit is contained in:
Mohamed Boudra
2026-03-12 14:19:21 +07:00
parent 213f155c9c
commit 9f089be946
10 changed files with 124 additions and 63 deletions
+3 -1
View File
@@ -536,8 +536,9 @@ pub fn run() {
garbage_collect_attachment_files
])
.setup(|app| {
let setup_start = std::time::Instant::now();
log::info!(
"[app] Paseo Desktop v{} starting",
"[app] Paseo Desktop v{} setup starting",
app.package_info().version
);
@@ -645,6 +646,7 @@ pub fn run() {
}
app.set_menu(menu)?;
log::info!("[app] setup complete ({}ms)", setup_start.elapsed().as_millis());
let window = app.get_webview_window("main").unwrap();
let window_clone = window.clone();
@@ -574,8 +574,10 @@ fn managed_daemon_status_internal(app: &AppHandle) -> Result<ManagedDaemonStatus
}
fn start_managed_daemon_internal(app: &AppHandle) -> Result<ManagedDaemonStatus, String> {
let t0 = std::time::Instant::now();
log::info!("[daemon] starting managed daemon");
let status = ensure_runtime_ready_internal(app)?;
log::info!("[daemon] runtime ready ({}ms)", t0.elapsed().as_millis());
let runtime_root = PathBuf::from(&status.runtime_root);
let manifest = load_runtime_manifest(&runtime_root)?;
let output = cli_command(&runtime_root, &manifest, &["start"])?
@@ -599,20 +601,21 @@ fn start_managed_daemon_internal(app: &AppHandle) -> Result<ManagedDaemonStatus,
stderr
));
}
log::info!("[daemon] start command succeeded, waiting for daemon to be ready");
log::info!("[daemon] start command succeeded ({}ms), waiting for daemon to be ready", t0.elapsed().as_millis());
for attempt in 0..150 {
let daemon_status = managed_daemon_status_internal(app)?;
if daemon_status.status == "running" && !daemon_status.server_id.trim().is_empty() {
log::info!(
"[daemon] ready after {} attempts (pid={:?})",
"[daemon] ready after {} attempts, {}ms (pid={:?})",
attempt + 1,
t0.elapsed().as_millis(),
daemon_status.pid
);
return Ok(daemon_status);
}
std::thread::sleep(std::time::Duration::from_millis(200));
}
log::warn!("[daemon] timed out waiting for daemon to become ready");
log::warn!("[daemon] timed out waiting for daemon to become ready ({}ms)", t0.elapsed().as_millis());
managed_daemon_status_internal(app)
}