mirror of
https://github.com/rtic-rs/rtic.git
synced 2024-12-18 16:09:33 +01:00
a636f4e4ad
Because of a compiler bug, the `async` implementations of `delay`/`delay_until`/`timeout`/`timeout_at` produce much larger RAM footprint than they should. Fixes #890. Co-authored-by: Emil Fresk <emil.fresk@gmail.com>
2 KiB
2 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
Changed
- Replace
async
implementations ofdelay
/delay_until
/timeout
/timeout_at
with structs to reduce memory usage.
v2.0.0 - 2024-05-29
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.