From b137997f2988f0ceacce9392a32b197bd1e071d9 Mon Sep 17 00:00:00 2001 From: DrZlo13 Date: Fri, 25 Feb 2022 11:55:40 +1000 Subject: [PATCH] Software uart log: better locking mechanism --- main/soft-uart-log.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/main/soft-uart-log.c b/main/soft-uart-log.c index 28ff11b..78feffa 100644 --- a/main/soft-uart-log.c +++ b/main/soft-uart-log.c @@ -4,19 +4,20 @@ #include #include -#define LOG_BUFFER_SIZE (128) +extern void esp_log_impl_lock(void); +extern void esp_log_impl_unlock(void); +#define LOG_BUFFER_SIZE (128) static SoftUart* log_uart = NULL; static char log_buffer[LOG_BUFFER_SIZE]; static int soft_uart_log_vprintf(const char* str, va_list l) { - portMUX_TYPE myMutex = portMUX_INITIALIZER_UNLOCKED; - portENTER_CRITICAL(&myMutex); + esp_log_impl_lock(); int len = vsnprintf(log_buffer, LOG_BUFFER_SIZE, str, l); soft_uart_transmit(log_uart, (uint8_t*)log_buffer, strlen(log_buffer)); - portEXIT_CRITICAL(&myMutex); + esp_log_impl_unlock(); return len; }