mirror of
https://github.com/Klipper3d/klipper.git
synced 2025-07-12 01:08:00 -06:00
sched: Implement generic sleep mechanism based on tasks pending
Track when tasks are pending and spin in irq_wait() when no tasks are pending. This improves the mechanism for sleeping the processor - it's simpler for the board specific code and it reduces the possibility of the processor sleeping when tasks are busy. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
parent
a9982beacf
commit
2c272f99a3
9 changed files with 60 additions and 80 deletions
|
@ -9,7 +9,7 @@ void move_request_size(int size);
|
|||
void *oid_lookup(uint8_t oid, void *type);
|
||||
void *oid_alloc(uint8_t oid, void *type, uint16_t size);
|
||||
void *oid_next(uint8_t *i, void *type);
|
||||
void stats_note_sleep(uint32_t sleep_time);
|
||||
void stats_update(uint32_t start, uint32_t cur);
|
||||
|
||||
#define foreach_oid(pos,data,oidtype) \
|
||||
for (pos=-1; (data=oid_next(&pos, oidtype)); )
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue