From 046ae80bdfc3bf4f278f3cc0fb29dc82ad91ec33 Mon Sep 17 00:00:00 2001 From: Damien George Date: Fri, 7 Feb 2020 12:50:57 +1100 Subject: [PATCH] unix, windows: Use mp_keyboard_interrupt instead of custom code. The mp_keyboard_interrupt() function does exactly what is needed here, and using it gets ctrl-C working when MICROPY_ENABLE_SCHEDULER is enabled on these ports (and MICROPY_ASYNC_KBD_INTR is disabled). --- ports/unix/unix_mphal.c | 3 +-- ports/windows/windows_mphal.c | 5 ++--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/ports/unix/unix_mphal.c b/ports/unix/unix_mphal.c index 25d1b022db..8fabb339d7 100644 --- a/ports/unix/unix_mphal.c +++ b/ports/unix/unix_mphal.c @@ -58,8 +58,7 @@ STATIC void sighandler(int signum) { // this is the second time we are called, so die straight away exit(1); } - mp_obj_exception_clear_traceback(MP_OBJ_FROM_PTR(&MP_STATE_VM(mp_kbd_exception))); - MP_STATE_VM(mp_pending_exception) = MP_OBJ_FROM_PTR(&MP_STATE_VM(mp_kbd_exception)); + mp_keyboard_interrupt(); #endif } } diff --git a/ports/windows/windows_mphal.c b/ports/windows/windows_mphal.c index 6de888085f..e0c1255242 100644 --- a/ports/windows/windows_mphal.c +++ b/ports/windows/windows_mphal.c @@ -25,7 +25,7 @@ */ -#include "py/mpstate.h" +#include "py/runtime.h" #include "py/mphal.h" #include "py/mpthread.h" @@ -84,8 +84,7 @@ BOOL WINAPI console_sighandler(DWORD evt) { // this is the second time we are called, so die straight away exit(1); } - mp_obj_exception_clear_traceback(MP_OBJ_FROM_PTR(&MP_STATE_VM(mp_kbd_exception))); - MP_STATE_VM(mp_pending_exception) = MP_OBJ_FROM_PTR(&MP_STATE_VM(mp_kbd_exception)); + mp_keyboard_interrupt(); return TRUE; } return FALSE;