2023-01-28 11:15:59 +01:00
# Change Log
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning ](http://semver.org/ ).
For each category, *Added* , *Changed* , *Fixed* add new entries at the top!
2024-05-29 21:01:51 +02:00
## Unreleased
2024-04-11 00:00:38 +02:00
2024-05-29 21:01:51 +02:00
## v2.0.0 - 2024-05-29
2023-12-04 20:37:00 +01:00
### Added
### Changed
2024-05-29 21:01:51 +02:00
2024-04-11 00:00:38 +02:00
- 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` .
2023-12-04 20:37:00 +01:00
2023-12-06 19:44:35 +01:00
### Fixed
2024-03-24 18:15:57 +01:00
- Docs: Rename `DelayUs` to `DelayNs` in docs.
2024-01-10 20:21:38 +01:00
## v1.3.0 - 2024-01-10
### Changed
- Using `embedded-hal` 1.0.
2023-12-06 19:44:35 +01:00
## v1.2.0 - 2023-12-06
### Changed
2023-12-06 08:49:38 +01:00
- Docs: Add sanity check to `half_period_counter` code example
2023-12-06 19:36:06 +01:00
- Deprecate `Monotonic::should_dequeue_check` as it was erroneous
2023-12-06 08:49:38 +01:00
2023-12-04 20:37:00 +01:00
### Fixed
2023-12-06 19:36:09 +01:00
- Fix race condition in `half_period_counter::calculate_now` .
This sadly required a minor API change.
2023-12-04 20:37:00 +01:00
## v1.1.0 - 2023-12-04
2023-01-28 11:15:59 +01:00
### Added
2023-12-04 15:53:02 +01:00
- `half_period_counter` containing utilities for implementing a half-period-counter based monotonic.
- `should_dequeue_check` to the `Monotonic` trait to handle bugged timers.
2023-04-01 20:48:23 +02:00
2023-01-28 11:15:59 +01:00
### Changed
### Fixed
2023-12-01 08:59:22 +01:00
- **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.
2023-04-08 21:37:23 +02:00
- 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.
2023-12-04 20:37:00 +01:00
## v1.0.0 - 2023-05-31