Files
firmware/src/mesh
Jonathan BennettandClaude Opus 5 e5c559a1c8 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-10 15:24:32 +00:00
..
2026-09-24 22:41:37 +00:00
2026-09-24 22:41:37 +00:00
2023-01-21 21:23:24 +01:00
2026-07-01 19:01:27 -05:00