2003-02-11 Joel Sherrill <joel@OARcorp.com>

* interrupts.t: Rework logic that decides when to call
	_Thread_Dispatch.  Analysis by Sergei Organov <osv@javad.ru>
	determined that _ISR_Signals_to_thread_executing was not being
	honored and/or cleared properly.
This commit is contained in:
Joel Sherrill
2003-02-11 23:44:41 +00:00
parent 3ab9062756
commit eed014937a
2 changed files with 14 additions and 9 deletions

View File

@@ -1,3 +1,10 @@
2003-02-11 Joel Sherrill <joel@OARcorp.com>
* interrupts.t: Rework logic that decides when to call
_Thread_Dispatch. Analysis by Sergei Organov <osv@javad.ru>
determined that _ISR_Signals_to_thread_executing was not being
honored and/or cleared properly.
2003-01-25 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* porting.texi: Set @setfilename porting.info.

View File

@@ -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