Add notification system for relay channel state changes
- Introduced a new notification module to handle state change listeners. - Added functions to register and unregister listeners for relay channel state changes. - Implemented a queue-based system to manage notifications and listener callbacks. - Updated core relay channel logic to utilize the new notification system. - Removed old listener management code from relay channel core. - Refactored the former listener tests to notify tests and added tests for the notification system, including handling of multiple listeners and queue overflow scenarios. - Updated CMakeLists.txt to include new source files and headers for the notification module. - Revised README.md to include warnings about callback execution context and performance considerations. Refs #1096, #1085 and closes #1097
This commit is contained in:
@@ -200,6 +200,9 @@ relay_chn_flip_direction_all();
|
||||
|
||||
### 3. Monitor channel state
|
||||
|
||||
> [!WARNING]
|
||||
> Listener callbacks are executed from the context of the notification dispatcher task. To ensure system responsiveness and prevent event loss, callbacks must be lightweight and non-blocking. Avoid any long-running operations or functions that may block, such as `vTaskDelay()` or semaphore takes with long timeouts, inside the callback.
|
||||
|
||||
For single mode:
|
||||
|
||||
```c
|
||||
|
||||
Reference in New Issue
Block a user