-
released this
2026-10-07 13:58:55 +00:00 | 3 commits to main since this releaseBug Fix: ScheduleManager startup self-deadlock
On devices with a schedule cache file present (the normal state for a provisioned kiosk), ScheduleManager::start() held mutex_ while calling loadCache(), which re-locks the same non-recursive mutex. The resulting self-deadlock blocked SDL_AppInit before the first frame was presented, so the kiosk booted to a black screen showing only the compositor cursor.
Fix: narrow the lock scope in start() so loadCache() acquires the mutex itself. Adds a regression test covering startup with a cached payload.
Downloads