development
0x1abin 4 years ago
parent 1dc788f79f
commit 1f9be39c77

@ -92,17 +92,17 @@ int MultiTimerStop(MultiTimer* timer)
*/ */
void MultiTimerYield(void) void MultiTimerYield(void)
{ {
MultiTimer* target = timerList; MultiTimer* target;
for (; target; target = target->next) { for (target = timerList; target; target = target->next) {
if (platformTicksFunction() >= target->deadline) { if (target->deadline > platformTicksFunction()) {
if (target->period == 0) { return;
MultiTimerStop(target);
} else {
target->deadline = platformTicksFunction() + target->period;
} }
MultiTimerStop(target);
if (target->callback) {
target->callback(target, target->userData); target->callback(target, target->userData);
} else { }
break; if (target->period) {
MultiTimerStart(target, target->period);
} }
} }
} }

Loading…
Cancel
Save