mirror of
https://github.com/saymrwulf/xous-core.git
synced 2026-11-15 08:30:02 +00:00
Busy-wait animaitions are handled by a helper server that is normally blocked. A single shared `bool` indicates whether the animation should run or not. When woken up, the busy-wait animator will check if the shared `bool` is set, and if so, send a message to the main loop to update the animation, then send wait an appropriate timeout and send itself a message to re-check the animation status. This particular format of server is fairly compact but can be vulnerable to a "message storm" if busy state updates happen in rapid succession without allowing the server to unblock and handle messages. Thus, all messages to this server use a `try_send` method, with a silent failure if the message can't be sent. In other words, if the animator is already super busy and its queue is full, don't send it more messages, just drop the existing updates so we can fail without a panic or deadlock. The typical consequence of this is some UX inconsistency, which is not a critical error. |
||
|---|---|---|
| .. | ||
| chat | ||
| cos_table | ||
| mass-storage | ||
| tls | ||
| userprefs | ||
| xous-pio | ||
| xous-pl230 | ||