From aa468561ebaa72564ee4a87e226d0723c63a3ccb Mon Sep 17 00:00:00 2001 From: Terraneo Federico <fede.tft@miosix.org> Date: Sun, 26 Mar 2023 14:53:22 +0200 Subject: [PATCH] Cleanup IRQwakeThreads --- miosix/kernel/kernel.cpp | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/miosix/kernel/kernel.cpp b/miosix/kernel/kernel.cpp index b51620d6..f7adb14d 100755 --- a/miosix/kernel/kernel.cpp +++ b/miosix/kernel/kernel.cpp @@ -299,9 +299,7 @@ void IRQremoveFromSleepingList(SleepData *x) */ bool IRQwakeThreads(long long currentTime) { - //If no item in list, return - if(sleepingList.empty()) - return false; + if(sleepingList.empty()) return false; //If no item in list, return bool result=false; //Since list is sorted, if we don't need to wake the first element @@ -309,14 +307,12 @@ bool IRQwakeThreads(long long currentTime) for(auto it=sleepingList.begin();it!=sleepingList.end();) { if(currentTime<(*it)->wakeupTime) break; - else { - (*it)->thread->flags.IRQsetSleep(false); //Wake thread - //Reset cond wait flag to wakeup threads in pthread_cond_timedwait() too - (*it)->thread->flags.IRQsetCondWait(false); - if(const_cast<Thread*>(runningThread)->getPriority()<(*it)->thread->getPriority()) - result=true; - it=sleepingList.erase(it); - } + (*it)->thread->flags.IRQsetSleep(false); //Wake thread + //Reset cond wait flag to wakeup threads in pthread_cond_timedwait() too + (*it)->thread->flags.IRQsetCondWait(false); + if(const_cast<Thread*>(runningThread)->getPriority()<(*it)->thread->getPriority()) + result=true; + it=sleepingList.erase(it); } return result; } -- GitLab