rtic/rtic-time/CHANGELOG.md
dalegaard a636f4e4ad
Change timeout/delay functions to non-async (#910)
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>
2024-08-21 18:40:52 +00:00

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 of delay/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 the TimerQueue.
    • TimerQueue is now purely based on ticks and has no concept of real time.
    • The TimerQueueBasedMonotonic trait implements a Monotonic based on a TimerQueueBackend, translating ticks into Instant and Duration.

Fixed

  • Docs: Rename DelayUs to DelayNs 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 the Monotonic trait to handle bugged timers.

Changed

Fixed

  • Soundness fix: TimerQueue did not wait long enough in Duration based delays. Fixing this sadly required adding a const TICK_PERIOD to the Monotonic 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 new head to be dequeued at the wrong time.

v1.0.0 - 2023-05-31