Renamed thread field "preempt" in "ticks" for clearness.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@11079 35acf78f-673a-0410-8e92-d51de3d6d3f4
This commit is contained in:
parent
56a33f50ed
commit
71ccd7eb14
|
@ -181,7 +181,7 @@ struct ch_thread {
|
||||||
* @brief Number of ticks remaining to this thread.
|
* @brief Number of ticks remaining to this thread.
|
||||||
*/
|
*/
|
||||||
#if (CH_CFG_TIME_QUANTUM > 0) || defined(__DOXYGEN__)
|
#if (CH_CFG_TIME_QUANTUM > 0) || defined(__DOXYGEN__)
|
||||||
tslices_t preempt;
|
tslices_t ticks;
|
||||||
#endif
|
#endif
|
||||||
#if (CH_DBG_THREADS_PROFILING == TRUE) || defined(__DOXYGEN__)
|
#if (CH_DBG_THREADS_PROFILING == TRUE) || defined(__DOXYGEN__)
|
||||||
/**
|
/**
|
||||||
|
@ -694,7 +694,7 @@ static inline void chSchPreemption(void) {
|
||||||
tprio_t p2 = currp->prio;
|
tprio_t p2 = currp->prio;
|
||||||
|
|
||||||
#if CH_CFG_TIME_QUANTUM > 0
|
#if CH_CFG_TIME_QUANTUM > 0
|
||||||
if (currp->preempt > (tslices_t)0) {
|
if (currp->ticks > (tslices_t)0) {
|
||||||
if (p1 > p2) {
|
if (p1 > p2) {
|
||||||
chSchDoRescheduleAhead();
|
chSchDoRescheduleAhead();
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,9 +45,9 @@
|
||||||
"be zero or greater than one"
|
"be zero or greater than one"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (CH_CFG_ST_TIMEDELTA > 0) && (CH_CFG_TIME_QUANTUM > 0)
|
//#if (CH_CFG_ST_TIMEDELTA > 0) && (CH_CFG_TIME_QUANTUM > 0)
|
||||||
#error "CH_CFG_TIME_QUANTUM not supported in tickless mode"
|
//#error "CH_CFG_TIME_QUANTUM not supported in tickless mode"
|
||||||
#endif
|
//#endif
|
||||||
|
|
||||||
#if (CH_CFG_ST_TIMEDELTA > 0) && (CH_DBG_THREADS_PROFILING == TRUE)
|
#if (CH_CFG_ST_TIMEDELTA > 0) && (CH_DBG_THREADS_PROFILING == TRUE)
|
||||||
#error "CH_DBG_THREADS_PROFILING not supported in tickless mode"
|
#error "CH_DBG_THREADS_PROFILING not supported in tickless mode"
|
||||||
|
|
|
@ -108,7 +108,7 @@ ROMCONST chdebug_t ch_debug = {
|
||||||
(uint8_t)0,
|
(uint8_t)0,
|
||||||
#endif
|
#endif
|
||||||
#if CH_CFG_TIME_QUANTUM > 0
|
#if CH_CFG_TIME_QUANTUM > 0
|
||||||
(uint8_t)_offsetof(thread_t, preempt),
|
(uint8_t)_offsetof(thread_t, ticks),
|
||||||
#else
|
#else
|
||||||
(uint8_t)0,
|
(uint8_t)0,
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -297,7 +297,7 @@ void chSchGoSleepS(tstate_t newstate) {
|
||||||
#if CH_CFG_TIME_QUANTUM > 0
|
#if CH_CFG_TIME_QUANTUM > 0
|
||||||
/* The thread is renouncing its remaining time slices so it will have a new
|
/* The thread is renouncing its remaining time slices so it will have a new
|
||||||
time quantum when it will wakeup.*/
|
time quantum when it will wakeup.*/
|
||||||
otp->preempt = (tslices_t)CH_CFG_TIME_QUANTUM;
|
otp->ticks = (tslices_t)CH_CFG_TIME_QUANTUM;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Next thread in ready list becomes current.*/
|
/* Next thread in ready list becomes current.*/
|
||||||
|
@ -485,7 +485,7 @@ bool chSchIsPreemptionRequired(void) {
|
||||||
if the first thread on the ready queue has a higher priority.
|
if the first thread on the ready queue has a higher priority.
|
||||||
Otherwise, if the running thread has used up its time quantum, reschedule
|
Otherwise, if the running thread has used up its time quantum, reschedule
|
||||||
if the first thread on the ready queue has equal or higher priority.*/
|
if the first thread on the ready queue has equal or higher priority.*/
|
||||||
return (currp->preempt > (tslices_t)0) ? (p1 > p2) : (p1 >= p2);
|
return (currp->ticks > (tslices_t)0) ? (p1 > p2) : (p1 >= p2);
|
||||||
#else
|
#else
|
||||||
/* If the round robin preemption feature is not enabled then performs a
|
/* If the round robin preemption feature is not enabled then performs a
|
||||||
simpler comparison.*/
|
simpler comparison.*/
|
||||||
|
@ -518,7 +518,7 @@ void chSchDoRescheduleBehind(void) {
|
||||||
|
|
||||||
#if CH_CFG_TIME_QUANTUM > 0
|
#if CH_CFG_TIME_QUANTUM > 0
|
||||||
/* It went behind peers so it gets a new time quantum.*/
|
/* It went behind peers so it gets a new time quantum.*/
|
||||||
otp->preempt = (tslices_t)CH_CFG_TIME_QUANTUM;
|
otp->ticks = (tslices_t)CH_CFG_TIME_QUANTUM;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Placing in ready list behind peers.*/
|
/* Placing in ready list behind peers.*/
|
||||||
|
@ -582,14 +582,14 @@ void chSchDoReschedule(void) {
|
||||||
#if CH_CFG_TIME_QUANTUM > 0
|
#if CH_CFG_TIME_QUANTUM > 0
|
||||||
/* If CH_CFG_TIME_QUANTUM is enabled then there are two different scenarios
|
/* If CH_CFG_TIME_QUANTUM is enabled then there are two different scenarios
|
||||||
to handle on preemption: time quantum elapsed or not.*/
|
to handle on preemption: time quantum elapsed or not.*/
|
||||||
if (currp->preempt == (tslices_t)0) {
|
if (currp->ticks == (tslices_t)0) {
|
||||||
|
|
||||||
/* The thread consumed its time quantum so it is enqueued behind threads
|
/* The thread consumed its time quantum so it is enqueued behind threads
|
||||||
with same priority level, however, it acquires a new time quantum.*/
|
with same priority level, however, it acquires a new time quantum.*/
|
||||||
otp = chSchReadyI(otp);
|
otp = chSchReadyI(otp);
|
||||||
|
|
||||||
/* The thread being swapped out receives a new time quantum.*/
|
/* The thread being swapped out receives a new time quantum.*/
|
||||||
otp->preempt = (tslices_t)CH_CFG_TIME_QUANTUM;
|
otp->ticks = (tslices_t)CH_CFG_TIME_QUANTUM;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
/* The thread didn't consume all its time quantum so it is put ahead of
|
/* The thread didn't consume all its time quantum so it is put ahead of
|
||||||
|
|
|
@ -344,9 +344,9 @@ void chSysTimerHandlerI(void) {
|
||||||
|
|
||||||
#if CH_CFG_TIME_QUANTUM > 0
|
#if CH_CFG_TIME_QUANTUM > 0
|
||||||
/* Running thread has not used up quantum yet? */
|
/* Running thread has not used up quantum yet? */
|
||||||
if (currp->preempt > (tslices_t)0) {
|
if (currp->ticks > (tslices_t)0) {
|
||||||
/* Decrement remaining quantum.*/
|
/* Decrement remaining quantum.*/
|
||||||
currp->preempt--;
|
currp->ticks--;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#if CH_DBG_THREADS_PROFILING == TRUE
|
#if CH_DBG_THREADS_PROFILING == TRUE
|
||||||
|
|
|
@ -91,7 +91,7 @@ thread_t *_thread_init(thread_t *tp, const char *name, tprio_t prio) {
|
||||||
tp->state = CH_STATE_WTSTART;
|
tp->state = CH_STATE_WTSTART;
|
||||||
tp->flags = CH_FLAG_MODE_STATIC;
|
tp->flags = CH_FLAG_MODE_STATIC;
|
||||||
#if CH_CFG_TIME_QUANTUM > 0
|
#if CH_CFG_TIME_QUANTUM > 0
|
||||||
tp->preempt = (tslices_t)CH_CFG_TIME_QUANTUM;
|
tp->ticks = (tslices_t)CH_CFG_TIME_QUANTUM;
|
||||||
#endif
|
#endif
|
||||||
#if CH_CFG_USE_MUTEXES == TRUE
|
#if CH_CFG_USE_MUTEXES == TRUE
|
||||||
tp->realprio = prio;
|
tp->realprio = prio;
|
||||||
|
|
Loading…
Reference in New Issue