From ae72a97e895a79874aeaf4318d81fadd0bad7251 Mon Sep 17 00:00:00 2001 From: 0x1abin <270995079@qq.com> Date: Sat, 25 Sep 2021 11:17:48 +0800 Subject: [PATCH] MultiTimerYield optimize. --- MultiTimer.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/MultiTimer.c b/MultiTimer.c index 8c18b99..f0419fb 100644 --- a/MultiTimer.c +++ b/MultiTimer.c @@ -69,23 +69,18 @@ int MultiTimerStop(MultiTimer* timer) int MultiTimerYield(void) { - MultiTimer** nextTimer = &timerList; - for (; *nextTimer; nextTimer = &(*nextTimer)->next) { - MultiTimer* entry = *nextTimer; + MultiTimer* entry = timerList; + for (; entry; entry = entry->next) { /* Sorted list, just process with the front part. */ if (CHECK_TIME_LESS_THAN(platformTicksFunction(), entry->deadline)) { return (int)(entry->deadline - platformTicksFunction()); } /* remove expired timer from list */ - *nextTimer = entry->next; + timerList = entry->next; /* call callback */ if (entry->callback) { entry->callback(entry, entry->userData); } - if (entry->next == NULL) { - return 0; - } } - return 0; }