From 620b0df2b118ff3e03224313e0f7d5cc78bb065a Mon Sep 17 00:00:00 2001 From: Liu Han Date: Thu, 3 Dec 2020 16:53:05 +0800 Subject: [PATCH] esp_event: fix misuse of recursive semaphore take/give calls for profiling_mutex Closes/Merges https://github.com/espressif/esp-idf/pull/6102 --- components/esp_event/esp_event.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/esp_event/esp_event.c b/components/esp_event/esp_event.c index 5b0c3499c8..377e89a255 100644 --- a/components/esp_event/esp_event.c +++ b/components/esp_event/esp_event.c @@ -641,7 +641,7 @@ esp_err_t esp_event_loop_delete(esp_event_loop_handle_t event_loop) xSemaphoreTakeRecursive(loop->mutex, portMAX_DELAY); #ifdef CONFIG_ESP_EVENT_LOOP_PROFILING - xSemaphoreTakeRecursive(loop->profiling_mutex, portMAX_DELAY); + xSemaphoreTake(loop->profiling_mutex, portMAX_DELAY); portENTER_CRITICAL(&s_event_loops_spinlock); SLIST_REMOVE(&s_event_loops, loop, esp_event_loop_instance, next); portEXIT_CRITICAL(&s_event_loops_spinlock); @@ -672,7 +672,7 @@ esp_err_t esp_event_loop_delete(esp_event_loop_handle_t event_loop) // Free loop mutex before deleting xSemaphoreGiveRecursive(loop_mutex); #ifdef CONFIG_ESP_EVENT_LOOP_PROFILING - xSemaphoreGiveRecursive(loop_profiling_mutex); + xSemaphoreGive(loop_profiling_mutex); vSemaphoreDelete(loop_profiling_mutex); #endif vSemaphoreDelete(loop_mutex);