summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Sokolovsky <pfalcon@users.sourceforge.net>2016-04-13 16:26:29 +0300
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2016-04-13 16:34:11 +0300
commit54ea253f5699c791ddff073b0193f257fa77cee1 (patch)
treee09bf699960a894a352055bace1ec4288505b11b
parent47442d9f526c7118b56c7cd963862256a3154a54 (diff)
extmod/moduos_dupterm: 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.
-rw-r--r--extmod/moduos_dupterm.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/extmod/moduos_dupterm.c b/extmod/moduos_dupterm.c
index 99022df37..41b8b3c81 100644
--- a/extmod/moduos_dupterm.c
+++ b/extmod/moduos_dupterm.c
@@ -44,12 +44,9 @@ void mp_uos_dupterm_tx_strn(const char *str, size_t len) {
mp_call_method_n_kw(1, 0, write_m);
nlr_pop();
} 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 write() method, deactivating: ");
mp_obj_print_exception(&mp_plat_print, nlr.ret_val);
- MP_STATE_PORT(term_obj) = save_term;
}
}
}