diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-03-02 10:55:10 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-03-02 21:46:52 +0100 |
commit | 9a13f3796ad48b7b737dffebc3dc6af2dfc0fb64 (patch) | |
tree | f79f329057584e0e0bb30925d099794cd4dd0239 /cpukit/rtems/src/signalsend.c | |
parent | bsps/beagle: Updating licences to latest BSD 2 clause (diff) | |
download | rtems-9a13f3796ad48b7b737dffebc3dc6af2dfc0fb64.tar.bz2 |
rtems: Simplify _Signal_Action_handler()
Use the invariant that an ASR is only processed if ASR processing is
enabled.
Diffstat (limited to '')
-rw-r--r-- | cpukit/rtems/src/signalsend.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/cpukit/rtems/src/signalsend.c b/cpukit/rtems/src/signalsend.c index 8c4ce10788..72407e2b01 100644 --- a/cpukit/rtems/src/signalsend.c +++ b/cpukit/rtems/src/signalsend.c @@ -41,7 +41,6 @@ static void _Signal_Action_handler( bool normal_is_preemptible; uint32_t normal_cpu_time_budget; Thread_CPU_budget_algorithms normal_budget_algorithm; - bool normal_asr_is_enabled; uint32_t normal_isr_level; uint32_t before_call_isr_level; bool after_call_is_preemptible; @@ -68,8 +67,8 @@ static void _Signal_Action_handler( /* Save normal mode */ + _Assert( asr->is_enabled ); normal_is_preemptible = executing->is_preemptible; - normal_asr_is_enabled = asr->is_enabled; normal_cpu_time_budget = executing->cpu_time_budget; normal_budget_algorithm = executing->budget_algorithm; @@ -133,13 +132,9 @@ static void _Signal_Action_handler( */ after_call_asr_is_enabled = asr->is_enabled; - asr->is_enabled = normal_asr_is_enabled; + asr->is_enabled = true; - if ( - normal_asr_is_enabled && - !after_call_asr_is_enabled && - asr->signals_pending != 0 - ) { + if ( !after_call_asr_is_enabled && asr->signals_pending != 0 ) { _Thread_Append_post_switch_action( executing, action ); } } |