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).
v1.13-wasp-os
Damien George 2020-02-07 12:50:57 +11:00
parent abe2caf6df
commit 046ae80bdf
2 changed files with 3 additions and 5 deletions

View File

@ -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
}
}

View File

@ -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;