From 71df60cf42d831b4d6e39dc7bee3c45f46befdab Mon Sep 17 00:00:00 2001
From: Robert HH <robert@hammelrath.com>
Date: Fri, 12 May 2017 20:37:49 +0200
Subject: [PATCH] esp8266/ets_alt_task.c: Prevent spurious large increment of
 ticks_ms()

This happened when the overflow counter for ticks_ms() was interrupted
by an external hard interrupt (issue #3076).
---
 esp8266/ets_alt_task.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/esp8266/ets_alt_task.c b/esp8266/ets_alt_task.c
index 6434f2366..ff7dba186 100644
--- a/esp8266/ets_alt_task.c
+++ b/esp8266/ets_alt_task.c
@@ -120,11 +120,13 @@ bool ets_loop_iter(void) {
     }
 
     // handle overflow of system microsecond counter
+    ets_intr_lock();
     uint32_t system_time_cur = system_get_time();
     if (system_time_cur < system_time_prev) {
         system_time_high_word += 1; // record overflow of low 32-bits
     }
     system_time_prev = system_time_cur;
+    ets_intr_unlock();
 
     //static unsigned cnt;
     bool progress = false;
-- 
GitLab