mirror of
https://github.com/infiniteCable2/openpilot.git
synced 2026-08-05 00:05:57 +08:00
32671d1c3f
ui: nonblocking writes for ExperimentalMode + DriverView toggles + cycle-restart All four put calls fire from the main render thread on user interaction and block on disk fsync, causing visible UI frame spikes. Each consumer is safe under nonblocking: - onboarding inactivity_callback: write-and-forget (~25 ms saved) - home long-press exp toggle: ui_state.experimental_mode owns visual state (~10 ms) - onroad exp_button: $held_mode + selfdriveState owns visual state - restart_needed_callback (OnroadCycleRequested): cross-process signal, consumer is selfdrived which polls the param BigParamControl-driven toggles in settings (developer.py, toggles.py) are intentionally left blocking — those widgets refresh visual state from disk every frame to mirror external changes, which would race a nonblocking write.