diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-10-06 08:46:21 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-10-06 08:46:21 +0200 |
commit | 38c2147759d1b687a7330419a04a6c84d80b784a (patch) | |
tree | 3062fb33845ef59fa9bf796dc3473be0c75d46cb | |
parent | score: Optimize EDF SMP scheduler ops (diff) | |
download | rtems-38c2147759d1b687a7330419a04a6c84d80b784a.tar.bz2 |
rtems: Set postponed jobs in rate-monotonic cancel
Set the postponed jobs count to zero in rtems_rate_monotonic_cancel() so that
rtems_rate_monotonic_get_status() returns a consistent status for inactive
periods.
Update #4511.
-rw-r--r-- | cpukit/rtems/src/ratemoncancel.c | 1 | ||||
-rw-r--r-- | cpukit/rtems/src/ratemonperiod.c | 2 |
2 files changed, 2 insertions, 1 deletions
diff --git a/cpukit/rtems/src/ratemoncancel.c b/cpukit/rtems/src/ratemoncancel.c index 3d95c06fd7..ccc03942c6 100644 --- a/cpukit/rtems/src/ratemoncancel.c +++ b/cpukit/rtems/src/ratemoncancel.c @@ -35,6 +35,7 @@ void _Rate_monotonic_Cancel( _Rate_monotonic_Acquire_critical( the_period, lock_context ); _Watchdog_Per_CPU_remove_ticks( &the_period->Timer ); + the_period->postponed_jobs = 0; the_period->state = RATE_MONOTONIC_INACTIVE; _Scheduler_Cancel_job( the_period->owner, diff --git a/cpukit/rtems/src/ratemonperiod.c b/cpukit/rtems/src/ratemonperiod.c index 2c55eb089d..7f0d302583 100644 --- a/cpukit/rtems/src/ratemonperiod.c +++ b/cpukit/rtems/src/ratemonperiod.c @@ -217,7 +217,7 @@ static rtems_status_code _Rate_monotonic_Activate( ISR_lock_Context *lock_context ) { - the_period->postponed_jobs = 0; + _Assert( the_period->postponed_jobs == 0 ); the_period->state = RATE_MONOTONIC_ACTIVE; the_period->next_length = length; _Rate_monotonic_Restart( the_period, executing, lock_context ); |