mirror of
https://github.com/rtic-rs/rtic.git
synced 2024-11-23 20:22:51 +01:00
8c23e178f3
* Rework timer_queue and monotonic architecture Goals: * make Monotonic purely internal * make Monotonic purely tick passed, no fugit involved * create a wrapper struct in the user's code via a macro that then converts the "now" from the tick based monotonic to a fugit based timestamp We need to proxy the delay functions of the timer queue anyway, so we could simply perform the conversion in those proxy functions. * Update cargo.lock * Update readme of rtic-time * CI: ESP32: Redact esp_image: Too volatile * Fixup: Changelog double entry rebase mistake --------- Co-authored-by: Henrik Tjäder <henrik@tjaders.com>
1.9 KiB
1.9 KiB
Change Log
All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
For each category, Added, Changed, Fixed add new entries at the top!
Unreleased - v2.0.0
Added
Changed
- Full rewrite of the
Monotonic
API.- Now split into multiple traits:
Monotonic
- A user-facing trait that defines what the functionality of a monotonic is.TimerQueueBackend
- The set of functionality a backend must provide in order to be used with theTimerQueue
.
TimerQueue
is now purely based on ticks and has no concept of real time.- The
TimerQueueBasedMonotonic
trait implements aMonotonic
based on aTimerQueueBackend
, translating ticks intoInstant
andDuration
.
- Now split into multiple traits:
Fixed
- Docs: Rename
DelayUs
toDelayNs
in docs.
v1.3.0 - 2024-01-10
Changed
- Using
embedded-hal
1.0.
v1.2.0 - 2023-12-06
Changed
- Docs: Add sanity check to
half_period_counter
code example - Deprecate
Monotonic::should_dequeue_check
as it was erroneous
Fixed
- Fix race condition in
half_period_counter::calculate_now
. This sadly required a minor API change.
v1.1.0 - 2023-12-04
Added
half_period_counter
containing utilities for implementing a half-period-counter based monotonic.should_dequeue_check
to theMonotonic
trait to handle bugged timers.
Changed
Fixed
- Soundness fix:
TimerQueue
did not wait long enough inDuration
based delays. Fixing this sadly required adding aconst TICK_PERIOD
to theMonotonic
trait, which requires updating all existing implementations. - If the queue was non-empty and a new instant was added that was earlier than
head
, then the queue would no pend the monotonic handler. This would cause the newhead
to be dequeued at the wrong time.