From 19e3c9d53a86cb8696bab93d645f6e63dfd26c2f Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Wed, 13 Apr 2016 16:32:57 +0300 Subject: [PATCH] esp8266/esp_mphal: Don't swallow exceptions in dupterm's read()/write(). The idea is that if dupterm object can handle exceptions, it will handle them itself. Otherwise, object state can be compromised and it's better to terminate dupterm session. For example, disconnected socket will keep throwing exceptions and dump messages about that. --- esp8266/esp_mphal.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/esp8266/esp_mphal.c b/esp8266/esp_mphal.c index 2f813ca22f..4427c44976 100644 --- a/esp8266/esp_mphal.c +++ b/esp8266/esp_mphal.c @@ -185,12 +185,9 @@ static int call_dupterm_read(void) { nlr_pop(); return *(byte*)bufinfo.buf; } else { - // Temporarily disable dupterm to avoid infinite recursion - mp_obj_t save_term = MP_STATE_PORT(term_obj); MP_STATE_PORT(term_obj) = NULL; - mp_printf(&mp_plat_print, "dupterm: "); + mp_printf(&mp_plat_print, "dupterm: Exception in read() method, deactivating: "); mp_obj_print_exception(&mp_plat_print, nlr.ret_val); - MP_STATE_PORT(term_obj) = save_term; } return -1;