summaryrefslogtreecommitdiffstats
path: root/doc/porting/interrupts.t
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--doc/porting/interrupts.t16
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