From da365c95e4460bda1f5b49a2e55ae144da1faf3f Mon Sep 17 00:00:00 2001 From: gdisirio Date: Fri, 16 Nov 2007 13:14:30 +0000 Subject: git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@93 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- src/chschd.c | 13 ++++++------- src/include/scheduler.h | 5 +++-- 2 files changed, 9 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/chschd.c b/src/chschd.c index a3763cd38..d3b112cf1 100644 --- a/src/chschd.c +++ b/src/chschd.c @@ -27,7 +27,6 @@ /** @cond never*/ static ReadyList rlist; -static t_cnt preempt; #ifndef CH_CURRP_REGISTER_CACHE Thread *currp; @@ -47,7 +46,7 @@ void chSchInit(void) { fifo_init(&rlist.r_queue); rlist.r_prio = ABSPRIO; - preempt = CH_TIME_QUANTUM; + rlist.r_preempt = CH_TIME_QUANTUM; #ifdef CH_USE_SYSTEMTIME stime = 0; #endif @@ -89,7 +88,7 @@ static void nextready(void) { Thread *otp = currp; (currp = fifo_remove(&rlist.r_queue))->p_state = PRCURR; - preempt = CH_TIME_QUANTUM; + rlist.r_preempt = CH_TIME_QUANTUM; #ifdef CH_USE_DEBUG chDbgTrace(otp, currp); #endif @@ -131,7 +130,7 @@ void chSchWakeupS(Thread *ntp, t_msg msg) { chSchReadyI(otp); (currp = ntp)->p_state = PRCURR; ntp->p_rdymsg = msg; - preempt = CH_TIME_QUANTUM; + rlist.r_preempt = CH_TIME_QUANTUM; #ifdef CH_USE_DEBUG chDbgTrace(otp, ntp); #endif @@ -172,7 +171,7 @@ BOOL chSchRescRequiredI(void) { if (isempty(&rlist.r_queue)) return FALSE; - if (preempt) { + if (rlist.r_preempt) { if (firstprio(&rlist.r_queue) <= currp->p_prio) return FALSE; } @@ -191,8 +190,8 @@ BOOL chSchRescRequiredI(void) { */ void chSchTimerHandlerI(void) { - if (preempt) - preempt--; + if (rlist.r_preempt) + rlist.r_preempt--; #ifdef CH_USE_SYSTEMTIME stime++; diff --git a/src/include/scheduler.h b/src/include/scheduler.h index 12393e0db..40130f356 100644 --- a/src/include/scheduler.h +++ b/src/include/scheduler.h @@ -38,8 +38,9 @@ * Ready list header. */ typedef struct { - ThreadsQueue r_queue; - t_prio r_prio; + ThreadsQueue r_queue; + t_prio r_prio; + t_cnt r_preempt; } ReadyList; /* -- cgit v1.2.3