py/mpstate: Make exceptions thread-local.
This moves mp_pending_exception from mp_state_vm_t to mp_state_thread_t. This allows exceptions to be scheduled on a specific thread. Signed-off-by: David Lechner <david@pybricks.com>
This commit is contained in:
committed by
Damien George
parent
7c51cb2307
commit
ca920f7218
@@ -137,9 +137,6 @@ typedef struct _mp_state_vm_t {
|
||||
// dictionary with loaded modules (may be exposed as sys.modules)
|
||||
mp_obj_dict_t mp_loaded_modules_dict;
|
||||
|
||||
// pending exception object (MP_OBJ_NULL if not pending)
|
||||
volatile mp_obj_t mp_pending_exception;
|
||||
|
||||
#if MICROPY_ENABLE_SCHEDULER
|
||||
mp_sched_item_t sched_queue[MICROPY_SCHEDULER_DEPTH];
|
||||
#endif
|
||||
@@ -266,6 +263,9 @@ typedef struct _mp_state_thread_t {
|
||||
|
||||
nlr_buf_t *nlr_top;
|
||||
|
||||
// pending exception object (MP_OBJ_NULL if not pending)
|
||||
volatile mp_obj_t mp_pending_exception;
|
||||
|
||||
#if MICROPY_PY_SYS_SETTRACE
|
||||
mp_obj_t prof_trace_callback;
|
||||
bool prof_callback_is_executing;
|
||||
|
||||
Reference in New Issue
Block a user