mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-12 12:06:16 -08:00
perf(workspace): share the startup inventory read and defer non-first-card IPC (J1)
Journey J1 / renderer.ipcCallsToFirstCard: 12 -> 7. - PlaylistsService.getAllPlaylists() shares one in-flight SQLite read between concurrent callers (the playlist effect and the XMLTV source reconciliation at startup). Settled reads are never reused and every SQLite write detaches the pending read. - getM3uFavoriteChannels() stops re-reading the write-once IndexedDB -> SQLite migration receipt once it has been seen. - StartupDeferralService holds the download list, app update status and the dashboard's recent items and favorites until one task after the render that reveals the routed content (5 s safety timeout). IPTVNATOR_DISABLE_STARTUP_DEFERRAL=1 is the kill switch. - reconcileEpgSources and the two distinct migration-flag reads stay on the critical path: the first is the #1548 revision fence, the second are different keys, not duplicates. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
76dd8c099e
commit
e5ee064407
24 files changed
+648
-23
No files matched your search
@@ -710,6 +710,11 @@ export interface ElectronBridgeApi {
|
||||
) => () => void;
|
||||
getAppVersion: () => Promise<string>;
|
||||
platform: string;
|
||||
/**
|
||||
* `IPTVNATOR_DISABLE_STARTUP_DEFERRAL=1` kill switch: issue deferred
|
||||
* startup work immediately instead of after the first rendered screen.
|
||||
*/
|
||||
startupDeferralDisabled?: boolean;
|
||||
getAppUpdateStatus: () => Promise<ElectronBridgeAppUpdateStatus>;
|
||||
checkForAppUpdate: () => Promise<ElectronBridgeAppUpdateStatus>;
|
||||
downloadAppUpdate: () => Promise<ElectronBridgeAppUpdateStatus>;
|
||||
|
||||
Reference in new issue
Block a user