diff options
author | Damien George <damien.p.george@gmail.com> | 2014-10-25 18:19:55 +0100 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2014-10-25 23:37:57 +0100 |
commit | 124df6f8d07b53542b6960dbeea9b63bff469a67 (patch) | |
tree | 39ea11d0bed72ed828c406d2b4a8fc069b00ca4e /py/runtime.h | |
parent | d7353fe6fe9c9d421ef045c0eea8d4591710e1ba (diff) | |
download | micropython-124df6f8d07b53542b6960dbeea9b63bff469a67.tar.gz micropython-124df6f8d07b53542b6960dbeea9b63bff469a67.zip |
py: Add mp_pending_exception global variable, for VM soft interrupt.
This allows to implement KeyboardInterrupt on unix, and a much safer
ctrl-C in stmhal port. First ctrl-C is a soft one, with hope that VM
will notice it; second ctrl-C is a hard one that kills anything (for
both unix and stmhal).
One needs to check for a pending exception in the VM only for jump
opcodes. Others can't produce an infinite loop (infinite recursion is
caught by stack check).
Diffstat (limited to 'py/runtime.h')
-rw-r--r-- | py/runtime.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/py/runtime.h b/py/runtime.h index 967a1fc097..5be470330b 100644 --- a/py/runtime.h +++ b/py/runtime.h @@ -116,6 +116,7 @@ mp_obj_t mp_convert_native_to_obj(mp_uint_t val, mp_uint_t type); mp_obj_t mp_native_call_function_n_kw(mp_obj_t fun_in, mp_uint_t n_args_kw, const mp_obj_t *args); NORETURN void mp_native_raise(mp_obj_t o); +extern mp_obj_t mp_pending_exception; extern struct _mp_obj_list_t mp_sys_path_obj; extern struct _mp_obj_list_t mp_sys_argv_obj; #define mp_sys_path ((mp_obj_t)&mp_sys_path_obj) |