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) 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 // Iterate through the linked list of listeners
for (ListItem_t *pxListItem = listGET_HEAD_ENTRY(&listeners); for (ListItem_t *pxListItem = listGET_HEAD_ENTRY(&listeners);
pxListItem != listGET_END_MARKER(&listeners); pxListItem != listGET_END_MARKER(&listeners);
@@ -164,6 +169,11 @@ static void do_remove_listener(relay_chn_state_listener_t listener)
} else { } else {
ESP_LOGD(TAG, "Listener %p not found for unregistration.", listener); 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) 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 }; 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"); ESP_LOGW(TAG, "Notify queue is full, failed to queue remove_listener");
} }
} }