From 8a2c14c1de387337da61e91486d613ad0f129886 Mon Sep 17 00:00:00 2001 From: rusefillc Date: Thu, 17 Dec 2020 21:15:28 -0500 Subject: [PATCH] More explicit handling of CPU exhaustion #2093 --- firmware/controllers/system/timer/single_timer_executor.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/firmware/controllers/system/timer/single_timer_executor.cpp b/firmware/controllers/system/timer/single_timer_executor.cpp index 9d07811cda..c49779dc97 100644 --- a/firmware/controllers/system/timer/single_timer_executor.cpp +++ b/firmware/controllers/system/timer/single_timer_executor.cpp @@ -123,10 +123,15 @@ void SingleTimerExecutor::executeAllPendingActions() { * TODO: add a counter & figure out a limit of iterations? */ + int executeCounter = 0; bool didExecute; do { efitick_t nowNt = getTimeNowNt(); didExecute = queue.executeOne(nowNt); + if (executeCounter++ == 10000) { + firmwareError(CUSTOM_ERR_LOCK_ISSUE, "Looks like firmware is really busy"); + } + } while (didExecute); if (!isLocked()) {