py/scheduler: Add optional port hook for when something is scheduled.
So that a port can "wake up" when there is work to do. Signed-off-by: Damien George <damien@micropython.org>
This commit is contained in:
parent
e9e9c76ddf
commit
916c3fd23f
|
@ -550,6 +550,12 @@
|
|||
#define MICROPY_VM_HOOK_RETURN
|
||||
#endif
|
||||
|
||||
// Hook for mp_sched_schedule when a function gets scheduled on sched_queue
|
||||
// (this macro executes within an atomic section)
|
||||
#ifndef MICROPY_SCHED_HOOK_SCHEDULED
|
||||
#define MICROPY_SCHED_HOOK_SCHEDULED
|
||||
#endif
|
||||
|
||||
// Whether to include the garbage collector
|
||||
#ifndef MICROPY_ENABLE_GC
|
||||
#define MICROPY_ENABLE_GC (0)
|
||||
|
|
|
@ -134,6 +134,7 @@ bool MICROPY_WRAP_MP_SCHED_SCHEDULE(mp_sched_schedule)(mp_obj_t function, mp_obj
|
|||
uint8_t iput = IDX_MASK(MP_STATE_VM(sched_idx) + MP_STATE_VM(sched_len)++);
|
||||
MP_STATE_VM(sched_queue)[iput].func = function;
|
||||
MP_STATE_VM(sched_queue)[iput].arg = arg;
|
||||
MICROPY_SCHED_HOOK_SCHEDULED;
|
||||
ret = true;
|
||||
} else {
|
||||
// schedule queue is full
|
||||
|
|
Loading…
Reference in New Issue