Files
firmware/src
Jonathan BennettandClaude Opus 5.5 a406eb30cf OSThread: keep a due time set during a run (#12067)
* OSThread: keep a due time set during a run

run() calls runned() after runOnce(), which re-bases the next run on
the end of the run. A notifyLater()/setIntervalFromNow() made inside
runOnce() was delayed by whatever the run did afterwards. Keep that due
time when runOnce() returns RUN_SAME; an explicit return value or a
later setInterval() still wins.

Co-Authored-By: Jonathan Bennett <jbennett@incomsystems.biz>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REkPVFh6kvG4AZJ5A8AtM9

* OSThread: skip runned() instead of restoring the due time

Restoring the saved due time after runned() could overwrite a
setInterval(0) from an ISR that landed between the check and the store.
Not calling runned() in that case leaves _cached_next_run unwritten, so
the ISR's wakeup stands.

Co-Authored-By: Jonathan Bennett <jbennett@incomsystems.biz>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REkPVFh6kvG4AZJ5A8AtM9

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 11:01:11 +00:00
..
2026-08-20 12:28:57 +00:00
2026-09-24 22:41:37 +00:00
2026-10-03 21:22:22 +02: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
2026-09-24 22:41:37 +00:00
2026-07-16 18:57:50 -05:00
…