This PR makes the modem_pipe instances track if they have data ready to receive, and invoke the RECEIVE_READY event every time they are attached if the backend implementing the pipe has notified that receive is ready. This mechanism ensures that modules attaching to a pipe get the async RECEIVE_READY event immediately after attaching to a pipe if there is data ready, instead of having to poll the pipe, or worse, wait until newer data becomes available. The addition revealed a timing issue in the cmux test suite. Specifically the CMUX instance now immediately receives the response to a command which the CMUX instance has not sent yet, causing it to drop the response. The CMUX test suite now uses the transaction mechanism of the mock_pipe to wait for the command before sending the response. Signed-off-by: Bjarki Arge Andreasen <bjarkix123@gmail.com> |
||
|---|---|---|
| .. | ||
| backends/tty | ||
| mock | ||
| modem_chat | ||
| modem_cmux | ||
| modem_ppp | ||