exec |= true;
}
+ post_instance_delete(&post);
+
if (ticks_to_run != portMAX_DELAY) {
end = xTaskGetTickCount();
remaining_ticks -= end - marker;
esp_event_loop_instance_t* loop = (esp_event_loop_instance_t*) event_loop;
SemaphoreHandle_t loop_mutex = loop->mutex;
+#ifdef CONFIG_EVENT_LOOP_PROFILING
+ SemaphoreHandle_t loop_profiling_mutex = loop->profiling_mutex;
+#endif
xSemaphoreTakeRecursive(loop->mutex, portMAX_DELAY);
#ifdef CONFIG_EVENT_LOOP_PROFILING
+ xSemaphoreTakeRecursive(loop->profiling_mutex, portMAX_DELAY);
portENTER_CRITICAL(&s_event_loops_spinlock);
SLIST_REMOVE(&s_event_loops, loop, esp_event_loop_instance, loop_entry);
portEXIT_CRITICAL(&s_event_loops_spinlock);
free(loop);
// Free loop mutex before deleting
xSemaphoreGiveRecursive(loop_mutex);
+#ifdef CONFIG_EVENT_LOOP_PROFILING
+ xSemaphoreGiveRecursive(loop_profiling_mutex);
+ vSemaphoreDelete(loop_profiling_mutex);
+#endif
vSemaphoreDelete(loop_mutex);
ESP_LOGD(TAG, "deleted loop %p", (void*) event_loop);