diff options
| author | datdenkikniet <jcdra1@gmail.com> | 2023-05-20 12:02:51 +0200 |
|---|---|---|
| committer | datdenkikniet <jcdra1@gmail.com> | 2023-05-20 12:02:51 +0200 |
| commit | 311291b95adbd24ecd037f5e555e4c30138f4339 (patch) | |
| tree | e007eecb93b9e37fbae278e3660bbf3ca9a3a711 /book/en/src/by-example/delay.md | |
| parent | 039c2b8bd440018531d79785c63bbfb74f0e686c (diff) | |
Make Monotonic implementation more obvious
Diffstat (limited to 'book/en/src/by-example/delay.md')
| -rw-r--r-- | book/en/src/by-example/delay.md | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/book/en/src/by-example/delay.md b/book/en/src/by-example/delay.md index a6ad0e0..09091fc 100644 --- a/book/en/src/by-example/delay.md +++ b/book/en/src/by-example/delay.md @@ -6,6 +6,8 @@ This can be achieved by instantiating a monotonic timer (for implementations, se [`rtic-monotonics`]: https://github.com/rtic-rs/rtic/tree/master/rtic-monotonics [`rtic-time`]: https://github.com/rtic-rs/rtic/tree/master/rtic-time +[`Monotonic`]: https://docs.rs/rtic-time/latest/rtic_time/trait.Monotonic.html +[Implementing a `Monotonic`]: ../../monotonic_impl.md ``` rust,noplayground ... @@ -25,12 +27,6 @@ async fn foo(_cx: foo::Context) { ``` -<!-- TODO: move technical explanation to internals --> - -Technically, the timer queue is implemented as a list based priority queue, where list-nodes are statically allocated as part of the underlying task `Future`. Thus, the timer queue is infallible at run-time (its size and allocation are determined at compile time). - -Similarly the channels implementation, the timer-queue implementation relies on a global *Critical Section* (CS) for race protection. For the examples a CS implementation is provided by adding `--features test-critical-section` to the build options. - <details> <summary>A complete example</summary> @@ -48,6 +44,9 @@ $ cargo run --target thumbv7m-none-eabi --example async-delay --features test-cr </details> +> Interested in contributing new implementations of [`Monotonic`], or more information about the inner workings of monotonics? +> Check out the [Implementing a `Monotonic`] chapter! + ## Timeout Rust [`Future`]s (underlying Rust `async`/`await`) are composable. This makes it possible to `select` in between `Futures` that have completed. |
