py/scheduler: Use MP_REGISTER_ROOT_POINTER().

This uses MP_REGISTER_ROOT_POINTER() to register sched_queue
instead of using a conditional inside of mp_state_vm_t.

Signed-off-by: David Lechner <david@pybricks.com>
This commit is contained in:
David Lechner 2022-07-02 15:05:41 -05:00 committed by Damien George
parent 85b4f36100
commit a1ef5ac65d
2 changed files with 2 additions and 4 deletions

View File

@ -150,10 +150,6 @@ typedef struct _mp_state_vm_t {
// dictionary with loaded modules (may be exposed as sys.modules) // dictionary with loaded modules (may be exposed as sys.modules)
mp_obj_dict_t mp_loaded_modules_dict; mp_obj_dict_t mp_loaded_modules_dict;
#if MICROPY_ENABLE_SCHEDULER
mp_sched_item_t sched_queue[MICROPY_SCHEDULER_DEPTH];
#endif
// dictionary for the __main__ module // dictionary for the __main__ module
mp_obj_dict_t dict_main; mp_obj_dict_t dict_main;

View File

@ -196,6 +196,8 @@ bool mp_sched_schedule_node(mp_sched_node_t *node, mp_sched_callback_t callback)
} }
#endif #endif
MP_REGISTER_ROOT_POINTER(mp_sched_item_t sched_queue[MICROPY_SCHEDULER_DEPTH]);
#endif // MICROPY_ENABLE_SCHEDULER #endif // MICROPY_ENABLE_SCHEDULER
// Called periodically from the VM or from "waiting" code (e.g. sleep) to // Called periodically from the VM or from "waiting" code (e.g. sleep) to