summaryrefslogtreecommitdiffstatshomepage
path: root/esp8266
diff options
context:
space:
mode:
authorPaul Sokolovsky <pfalcon@users.sourceforge.net>2016-04-17 18:11:04 +0300
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2016-04-17 18:11:04 +0300
commit6f3b9933bd6d60c62862d384a5f3c448f74d3c41 (patch)
tree4643e9e0da21c9bf3093f140398bc21a9beffa15 /esp8266
parentdde9abad16dfa2117104b2922fa10784a7ae7ff6 (diff)
downloadmicropython-6f3b9933bd6d60c62862d384a5f3c448f74d3c41.tar.gz
micropython-6f3b9933bd6d60c62862d384a5f3c448f74d3c41.zip
esp8266/esp_mphal: Protect dupterm_task_handler() from recursive exec.
Diffstat (limited to 'esp8266')
-rw-r--r--esp8266/esp_mphal.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/esp8266/esp_mphal.c b/esp8266/esp_mphal.c
index 72c3b8b59b..914097f9b5 100644
--- a/esp8266/esp_mphal.c
+++ b/esp8266/esp_mphal.c
@@ -194,6 +194,11 @@ static int call_dupterm_read(void) {
}
STATIC void dupterm_task_handler(os_event_t *evt) {
+ static byte lock;
+ if (lock) {
+ return;
+ }
+ lock = 1;
while (1) {
int c = call_dupterm_read();
if (c < 0) {
@@ -202,6 +207,7 @@ STATIC void dupterm_task_handler(os_event_t *evt) {
ringbuf_put(&input_buf, c);
}
mp_hal_signal_input();
+ lock = 0;
}
STATIC os_event_t dupterm_evt_queue[4];