Files
firmware/src
Jonathan BennettandClaude Opus 5 21ded4e7ed Make the frame-end anchor atomic
The radio worker writes lastFrameEndMs from onNotify() while a draw for a
packet being queued reads it on whatever thread called send(), so the access
was an unsynchronized read of a plain uint32_t. std::atomic with relaxed
ordering is free on every target here and matches MeshService's fromNum.

Relaxed is the right ordering: the anchor publishes nothing but itself, both
writers are the radio worker so the compare-then-store races with no other
write, and losing the race against a reader only anchors that one draw to the
frame before last.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MkrqYBzhAxyybmoezb1TJV
2026-10-09 16:46:57 +00:00
..
2026-08-20 12:28:57 +00:00
2026-09-24 22:41:37 +00:00
2026-10-09 16:46:57 +00:00
2026-09-24 22:41:37 +00:00
2026-01-29 05:56:19 -06:00
2026-02-19 07:16:33 -06:00
2026-05-11 11:46:13 -05:00
2026-07-01 19:01:27 -05:00
2023-01-21 21:23:24 +01:00
2026-09-24 22:41:37 +00:00
2026-07-16 18:57:50 -05:00