aboutsummaryrefslogtreecommitdiff
path: root/book/en/src/by-example/delay.md
diff options
context:
space:
mode:
authordatdenkikniet <jcdra1@gmail.com>2023-05-20 12:02:51 +0200
committerdatdenkikniet <jcdra1@gmail.com>2023-05-20 12:02:51 +0200
commit311291b95adbd24ecd037f5e555e4c30138f4339 (patch)
treee007eecb93b9e37fbae278e3660bbf3ca9a3a711 /book/en/src/by-example/delay.md
parent039c2b8bd440018531d79785c63bbfb74f0e686c (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.md11
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.