From 19d864b5cec76dd8aaa78f79b1edc0db5923ac87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=B6ttgens?= Date: Mon, 23 Jan 2023 22:20:34 +0100 Subject: [PATCH] Also reboot if no heap debugging enabled --- src/concurrency/OSThread.cpp | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/concurrency/OSThread.cpp b/src/concurrency/OSThread.cpp index 4a46c7b0e..c5e60f6fb 100644 --- a/src/concurrency/OSThread.cpp +++ b/src/concurrency/OSThread.cpp @@ -1,7 +1,8 @@ #include "OSThread.h" #include "configuration.h" -#ifdef DEBUG_HEAP +#ifdef HAS_SCREEN #include "graphics/Screen.h" +#endif #include "main.h" #endif #include @@ -83,18 +84,21 @@ void OSThread::run() #endif currentThread = this; auto newDelay = runOnce(); -#ifdef DEBUG_HEAP +#ifdef ARCH_ESP32 auto newHeap = ESP.getFreeHeap(); + if (newHeap < 10000) { + LOG_DEBUG("\n\n====== heap too low [10000] -> reboot in 5s ======\n\n"); +#ifdef HAS_SCREEN + screen->startRebootScreen(); +#endif + rebootAtMsec = millis() + 5000; + } +#ifdef DEBUG_HEAP if (newHeap < heap) LOG_DEBUG("------ Thread %s leaked heap %d -> %d (%d) ------\n", ThreadName.c_str(), heap, newHeap, newHeap - heap); if (heap < newHeap) LOG_DEBUG("++++++ Thread %s freed heap %d -> %d (%d) ++++++\n", ThreadName.c_str(), heap, newHeap, newHeap - heap); - - if (newHeap < 10000) { - LOG_DEBUG("\n\n====== heap too low [10000] -> reboot in 5s ======\n\n"); - screen->startRebootScreen(); - rebootAtMsec = millis() + 5000; - } +#endif #endif runned();