From b75ae3363da4da7039faec62decd14b6b07f666e Mon Sep 17 00:00:00 2001 From: dongheng <930490596@qq.com> Date: Tue, 2 Aug 2022 16:37:55 +0800 Subject: [PATCH] esp32: Support app management and thread (#1350) Support app management and thread on esp-idf platform: - Fix compile issues when app management is enabled - Add missing thread related APIs --- core/shared/platform/esp-idf/espidf_thread.c | 25 +++++++++++++++++++ .../platform/esp-idf/platform_internal.h | 1 + 2 files changed, 26 insertions(+) diff --git a/core/shared/platform/esp-idf/espidf_thread.c b/core/shared/platform/esp-idf/espidf_thread.c index c8d7a829..637cd417 100644 --- a/core/shared/platform/esp-idf/espidf_thread.c +++ b/core/shared/platform/esp-idf/espidf_thread.c @@ -44,6 +44,25 @@ os_mutex_init(korp_mutex *mutex) return pthread_mutex_init(mutex, NULL); } +int +os_recursive_mutex_init(korp_mutex *mutex) +{ + int ret; + + pthread_mutexattr_t mattr; + + assert(mutex); + ret = pthread_mutexattr_init(&mattr); + if (ret) + return BHT_ERROR; + + pthread_mutexattr_settype(&mattr, PTHREAD_MUTEX_RECURSIVE); + ret = pthread_mutex_init(mutex, &mattr); + pthread_mutexattr_destroy(&mattr); + + return ret == 0 ? BHT_OK : BHT_ERROR; +} + int os_mutex_destroy(korp_mutex *mutex) { @@ -206,3 +225,9 @@ os_cond_signal(korp_cond *cond) { return pthread_cond_signal(cond); } + +int +os_cond_broadcast(korp_cond *cond) +{ + return pthread_cond_broadcast(cond); +} \ No newline at end of file diff --git a/core/shared/platform/esp-idf/platform_internal.h b/core/shared/platform/esp-idf/platform_internal.h index fabc43f2..fa4165f2 100644 --- a/core/shared/platform/esp-idf/platform_internal.h +++ b/core/shared/platform/esp-idf/platform_internal.h @@ -17,6 +17,7 @@ #include #include #include +#include #include "esp_pthread.h" #include "esp_timer.h"