perf(daemon): skip the UI-thread datadir lock wait

Starting the daemon polls for an already-running node holding the
datadir, sleeping up to three 100 ms intervals to let a shutting-down
node clear out. When a start runs on the UI thread, that is up to 300 ms
of blocking sleep on the render thread.

- The lock-wait poll count is now a parameter. A start invoked on the UI
  thread passes 0, which does a single check and never sleeps; every
  other caller keeps the three-poll wait. The default is unchanged, so
  background starts behave exactly as before.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-10-14 06:26:13 -05:00
co-authored by Claude Opus 4.8
parent 8df0fe1734
commit 7e7804e577
5 changed files with 11 additions and 8 deletions
+2 -2
View File
@@ -41,10 +41,10 @@ void DaemonController::syncSettings(const config::Settings* settings)
daemon_->setWalletFile(walletFile);
}
bool DaemonController::start(const config::Settings* settings)
bool DaemonController::start(const config::Settings* settings, int lockWaitPolls)
{
syncSettings(settings);
return daemon_->start();
return daemon_->start("", lockWaitPolls);
}
void DaemonController::stop(int waitMs)