diff options
Diffstat (limited to '')
-rw-r--r-- | doc/porting/interrupts.t | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/doc/porting/interrupts.t b/doc/porting/interrupts.t index aa660f5a0e..d3930d043d 100644 --- a/doc/porting/interrupts.t +++ b/doc/porting/interrupts.t @@ -365,17 +365,15 @@ if ( _ISR_Nest_level ) restore stack #endif -if ( !_Context_Switch_necessary ) +if ( _Thread_Dispatch_disable_level ) + _ISR_Signals_to_thread_executing = FALSE; goto the label "exit interrupt (simple case)" -if ( !_ISR_Signals_to_thread_executing ) - goto the label "exit interrupt (simple case)" - -_ISR_Signals_to_thread_executing = FALSE; - -call _Thread_Dispatch() or prepare to return to _ISR_Dispatch -prepare to get out of interrupt -return from interrupt (maybe to _ISR_Dispatch) +if ( _Context_Switch_necessary || _ISR_Signals_to_thread_executing ) + _ISR_Signals_to_thread_executing = FALSE; + call _Thread_Dispatch() or prepare to return to _ISR_Dispatch + prepare to get out of interrupt + return from interrupt (maybe to _ISR_Dispatch) LABEL "exit interrupt (simple case): prepare to get out of interrupt |