From dc39fea05ea07302e2c51fbfbf6b37530b124577 Mon Sep 17 00:00:00 2001 From: gdisirio Date: Thu, 3 Jan 2008 14:27:58 +0000 Subject: [PATCH] git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@164 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- docs/index.html | 2 +- src/chschd.c | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/docs/index.html b/docs/index.html index 10b088bbb..a4d9e32c2 100644 --- a/docs/index.html +++ b/docs/index.html @@ -88,7 +88,7 @@ possible so some rules were set:
configure limits for data structures, only use lists or other dynamic data structures. See -the Documentation and +the Documentation and the demos.
  • No memory allocation inside the kernel, an allocator can be diff --git a/src/chschd.c b/src/chschd.c index 18a4e000f..f18169c20 100644 --- a/src/chschd.c +++ b/src/chschd.c @@ -80,11 +80,7 @@ void chSchReadyI(Thread *tp, t_msg msg) { * @note The function must be called in the system mutex zone. * @note The function is not meant to be used in the user code directly. */ -#ifdef CH_OPTIMIZE_SPEED -INLINE void chSchGoSleepS(t_tstate newstate) { -#else void chSchGoSleepS(t_tstate newstate) { -#endif Thread *otp; (otp = currp)->p_state = newstate; @@ -142,9 +138,15 @@ void chSchRescheduleS(void) { * \p chSchRescRequired() evaluates to \p TRUE. */ void chSchDoRescheduleI(void) { + Thread *otp = currp; - chSchReadyI(currp, RDY_OK); - chSchGoSleepS(PRREADY); + chSchReadyI(otp, RDY_OK); + (currp = fifo_remove(&rlist.r_queue))->p_state = PRCURR; + rlist.r_preempt = CH_TIME_QUANTUM; +#ifdef CH_USE_TRACE + chDbgTrace(otp, currp); +#endif + chSysSwitchI(&otp->p_ctx, &currp->p_ctx); } /**