Thread Communication
SPDX-License-Identifier: Apache-2.0
The Zephyr RTOS shall provide a mechanism for exchanging data between threads.
(Note: copying data may be needed here - what is Zephyr doing? is it configurable?)
The Zephyr RTOS shall provide mechanisms to enable waiting for results during communication between threads. (NOTE: waiting for results is really bad and dangerous, want to avoid if at all possible).
=N73
The Zephyr RTOS shall support a poll operation which enables waiting concurrently for any one of multiple conditions to be fulfilled.
As a Zephyr RTOS user I want my thread to wait for one of several defined events to occur and only continue when one of them has occurred.
The Zephyr RTOS shall provide a communication primitive that allows a thread to transfer a block of data to another thread.
As a Zephyr RTOS user I want to send a byte stream from one thread to another in a thread-safe manner.
The Zephyr RTOS shall provide a a communication primitive that allow threads and ISRs to asynchronously exchange fixed-size data items.
The Zephyr RTOS shall provide a communication primitive that allows threads to exchange messages of varying sizes asynchronously or synchronously.
As a Zephyr RTOS user I want a sending thread to deposit a message into the mailbox, and a receiving thread to be able to retrieve the message at its convenience. This allows for asynchronous communication, where threads do not need to synchronize their execution explicitly.