summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDavid Lechner <david@pybricks.com>2022-07-02 15:05:41 -0500
committerDamien George <damien@micropython.org>2022-07-18 13:52:01 +1000
commita1ef5ac65db8c7509bef5d3db9ba6de9fbb4ef40 (patch)
tree399f076903d454c593df97f2bd13ba4fe1c0d13b
parent85b4f36100aceeddd246f8b3a64436adc8dff867 (diff)
downloadmicropython-a1ef5ac65db8c7509bef5d3db9ba6de9fbb4ef40.tar.gz
micropython-a1ef5ac65db8c7509bef5d3db9ba6de9fbb4ef40.zip
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>
-rw-r--r--py/mpstate.h4
-rw-r--r--py/scheduler.c2
2 files changed, 2 insertions, 4 deletions
diff --git a/py/mpstate.h b/py/mpstate.h
index b7c41c81fc..1b6e623ca9 100644
--- a/py/mpstate.h
+++ b/py/mpstate.h
@@ -150,10 +150,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;
- #if MICROPY_ENABLE_SCHEDULER
- mp_sched_item_t sched_queue[MICROPY_SCHEDULER_DEPTH];
- #endif
-
// dictionary for the __main__ module
mp_obj_dict_t dict_main;
diff --git a/py/scheduler.c b/py/scheduler.c
index e8ad4e4f17..db090b0991 100644
--- a/py/scheduler.c
+++ b/py/scheduler.c
@@ -196,6 +196,8 @@ bool mp_sched_schedule_node(mp_sched_node_t *node, mp_sched_callback_t callback)
}
#endif
+MP_REGISTER_ROOT_POINTER(mp_sched_item_t sched_queue[MICROPY_SCHEDULER_DEPTH]);
+
#endif // MICROPY_ENABLE_SCHEDULER
// Called periodically from the VM or from "waiting" code (e.g. sleep) to