From c5496788e53c99371c2f4a36c67dcbf556176398 Mon Sep 17 00:00:00 2001 From: gdisirio Date: Sun, 13 Sep 2009 09:38:59 +0000 Subject: Cortex-M3 related improvements. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@1161 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/kernel/include/scheduler.h | 2 +- os/kernel/src/chschd.c | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) (limited to 'os/kernel') diff --git a/os/kernel/include/scheduler.h b/os/kernel/include/scheduler.h index 8aa692e58..f3216bb7a 100644 --- a/os/kernel/include/scheduler.h +++ b/os/kernel/include/scheduler.h @@ -117,7 +117,7 @@ extern "C" { * @details This function returns @p TRUE if there is a ready thread with * higher priority. */ -#define chSchMustRescheduleS() (firstprio(&rlist.r_queue) >= currp->p_prio) +#define chSchMustRescheduleS() (firstprio(&rlist.r_queue) > currp->p_prio) #endif /* _SCHEDULER_H_ */ diff --git a/os/kernel/src/chschd.c b/os/kernel/src/chschd.c index 1f7e27c93..08ecf46a0 100644 --- a/os/kernel/src/chschd.c +++ b/os/kernel/src/chschd.c @@ -210,8 +210,7 @@ void chSchDoRescheduleI(void) { * the ready list then make the higher priority thread running. */ void chSchRescheduleS(void) { - /* First thread in the runnable queue has higher priority than the running - * thread?.*/ + if (chSchMustRescheduleS()) chSchDoRescheduleI(); } -- cgit v1.2.3