From f9c60a226a0631a7ec74bf5997aa22ba8e82495c Mon Sep 17 00:00:00 2001 From: hreintke Date: Sun, 31 Dec 2017 07:53:42 +0100 Subject: [PATCH] Prevent endless loop in run_scheduled_functions (#4048) --- cores/esp8266/Schedule.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/cores/esp8266/Schedule.cpp b/cores/esp8266/Schedule.cpp index 6fabd942a..27b973195 100644 --- a/cores/esp8266/Schedule.cpp +++ b/cores/esp8266/Schedule.cpp @@ -65,12 +65,12 @@ bool schedule_function(std::function fn) void run_scheduled_functions() { - while (sFirst) { - scheduled_fn_t* item = sFirst; - sFirst = item->mNext; - if (sFirst == NULL) { - sLast = NULL; - } + scheduled_fn_t* rFirst = sFirst; + sFirst = NULL; + sLast = NULL; + while (rFirst) { + scheduled_fn_t* item = rFirst; + rFirst = item->mNext; item->mFunc(); item->mFunc = std::function(); recycle_fn(item);