rtic/book/en/src/by-example/message_passing.md
Franz Dietrich 53ed7bf7ed
fix included examples and markdown(book) (#912)
* fix included examples and markdown(book)

fixes: #911

* fix footnote pre_init

* more example link updates

* Restore pool example name

* Example: pool: Upgrade to heapless v0.8

* Example: pool: thumbv6 unsupported: wild cfg-if

Experiment with multi-backend example contained in the example

* Example: lm3s6965: Updated cargo.lock

* Book: Use cargo xtask for by-example

* Docs: Contributing: cargo xtask

---------

Co-authored-by: Henrik Tjäder <henrik@tjaders.com>
2024-04-03 22:01:46 +00:00

722 B

Message passing & capacity

Software tasks support message passing, this means that software tasks can be spawned with an argument: foo::spawn(1) which will run the task foo with the argument 1.

Capacity sets the size of the spawn queue for the task. If it is not specified, the capacity defaults to 1.

In the example below, the capacity of task foo is 3, allowing three simultaneous pending spawns of foo. Exceeding this capacity is an Error.

The number of arguments to a task is not limited:

{{#include ../../../../examples/message_passing.rs}}
$ cargo xtask qemu --verbose --example message_passing
{{#include ../../../../ci/expected/message_passing.run}}