-
Notifications
You must be signed in to change notification settings - Fork 14
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Problem: - There is no way to periodically run a sender without drift. Solution: - Introduce `periodic`, `periodic_n`, and `periodic_until`. Notes: - `periodic` interacts with the durationless time_scheduler. On first `start`, it schedules an expiry time of `now + duration`. On subsequence `start`s, it schedules an expiry time of `previous expiry + duration`. In this way it eliminates drift caused by the small amount of time taken to manage the timer interrupt. - The `get_expiration` query returns an `expiration_provider` rather than a bare expiration time because computing an expiration time typically involves calling `HAL::now()`, which entails making sure that `HAL::enable` has been called.
- Loading branch information
Showing
13 changed files
with
792 additions
and
62 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.