release-1.0.0 #39

Merged
ismail merged 78 commits from release-1.0.0 into main 2025-09-13 10:55:49 +02:00
Showing only changes of commit ad377ebfc8 - Show all commits

View File

@@ -118,6 +118,11 @@ void relay_chn_notify_deinit(void)
*/
static relay_chn_listener_entry_t* find_listener_entry(relay_chn_state_listener_t listener)
{
if (listLIST_IS_EMPTY(&listeners)) {
ESP_LOGD(TAG, "No listeners registered");
return NULL;
}
// Iterate through the linked list of listeners
for (ListItem_t *pxListItem = listGET_HEAD_ENTRY(&listeners);
pxListItem != listGET_END_MARKER(&listeners);
@@ -164,6 +169,11 @@ static void do_remove_listener(relay_chn_state_listener_t listener)
} else {
ESP_LOGD(TAG, "Listener %p not found for unregistration.", listener);
}
if (listLIST_IS_EMPTY(&listeners)) {
// Flush all pending notifications in the queue
xQueueReset(notify_msg_queue);
}
}
esp_err_t relay_chn_notify_add_listener(relay_chn_state_listener_t listener)
@@ -191,7 +201,7 @@ void relay_chn_notify_remove_listener(relay_chn_state_listener_t listener)
}
relay_chn_notify_msg_t msg = { .cmd = RELAY_CHN_NOTIFY_CMD_REMOVE_LISTENER, .payload.listener = listener };
if (xQueueSend(notify_msg_queue, &msg, 0) != pdTRUE) {
if (xQueueSendToFront(notify_msg_queue, &msg, 0) != pdTRUE) {
ESP_LOGW(TAG, "Notify queue is full, failed to queue remove_listener");
}
}