mirror of https://github.com/Desuuuu/klipper.git
sched: Fix scheduling bug in repeat scheduler check
Commit 7d95a004
introduced a defect - if the cached timer pointed to
by last_insert did not reschedule itself then the cache would not be
in a valid state and other active timers may not get properly
rescheduled.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
parent
dccd555409
commit
9ecddd1ba4
|
@ -161,6 +161,8 @@ sched_timer_dispatch(void)
|
||||||
// Update timer_list (rescheduling current timer if necessary)
|
// Update timer_list (rescheduling current timer if necessary)
|
||||||
unsigned int next_waketime = updated_waketime;
|
unsigned int next_waketime = updated_waketime;
|
||||||
if (unlikely(res == SF_DONE)) {
|
if (unlikely(res == SF_DONE)) {
|
||||||
|
if (SchedStatus.last_insert == t)
|
||||||
|
SchedStatus.last_insert = t->next;
|
||||||
next_waketime = t->next->waketime;
|
next_waketime = t->next->waketime;
|
||||||
SchedStatus.timer_list = t->next;
|
SchedStatus.timer_list = t->next;
|
||||||
} else if (!timer_is_before(updated_waketime, t->next->waketime)) {
|
} else if (!timer_is_before(updated_waketime, t->next->waketime)) {
|
||||||
|
|
Loading…
Reference in New Issue