diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2000-09-29 14:48:17 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2000-09-29 14:48:17 +0000 |
commit | bebf0438d6ab8128952b425ee735b2835bcfe668 (patch) | |
tree | 2dd7d89a7812bb584766b144fa3be8330fa26f47 /cpukit/rtems/src/ratemonperiod.c | |
parent | 2000-09-29 Charles-Antoine Gauthier <charles.gauthier@nrc.ca> (diff) | |
download | rtems-bebf0438d6ab8128952b425ee735b2835bcfe668.tar.bz2 |
2000-09-29 Stephan Merker <merker@decrc.abb.de>
* include/rtems/rtems/ratemon.h, src/ratemonperiod.c,
src/ratemontimeout.c: Add next_length field so period length
can be changed by the the sequence period(X), period(not X)
with no intervening cancel or expiration.
Diffstat (limited to 'cpukit/rtems/src/ratemonperiod.c')
-rw-r--r-- | cpukit/rtems/src/ratemonperiod.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/cpukit/rtems/src/ratemonperiod.c b/cpukit/rtems/src/ratemonperiod.c index 6d031cf218..854f39f812 100644 --- a/cpukit/rtems/src/ratemonperiod.c +++ b/cpukit/rtems/src/ratemonperiod.c @@ -95,6 +95,7 @@ rtems_status_code rtems_rate_monotonic_period( _Thread_Executing->ticks_executed; the_period->time_at_period = _Watchdog_Ticks_since_boot; + the_period->next_length = length; _Watchdog_Insert_ticks( &the_period->Timer, length ); _Thread_Enable_dispatch(); @@ -103,10 +104,13 @@ rtems_status_code rtems_rate_monotonic_period( case RATE_MONOTONIC_ACTIVE: /* * This tells the _Rate_monotonic_Timeout that this task is - * in the process of blocking on the period. + * in the process of blocking on the period and that we + * may be changing the length of the next period. */ the_period->state = RATE_MONOTONIC_OWNER_IS_BLOCKING; + the_period->next_length = length; + _ISR_Enable( level ); _Thread_Executing->Wait.id = the_period->Object.id; @@ -140,6 +144,7 @@ rtems_status_code rtems_rate_monotonic_period( the_period->owner_ticks_executed_at_period = _Thread_Executing->ticks_executed; the_period->time_at_period = _Watchdog_Ticks_since_boot; + the_period->next_length = length; _Watchdog_Insert_ticks( &the_period->Timer, length ); _Thread_Enable_dispatch(); |