Ignore:
Timestamp:
Feb 11, 2003, 11:29:06 PM (18 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.10, 4.11, 4.8, 4.9, 5, master
Children:
92e57ea2
Parents:
593904c
Message:

2003-02-11 Joel Sherrill <joel@…>

  • score/cpu_asm.c: Rework logic that decides when to call _Thread_Dispatch. Analysis by Sergei Organov <osv@…> determined that _ISR_Signals_to_thread_executing was not being honored and/or cleared properly.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • c/src/lib/libcpu/sh/sh7032/score/cpu_asm.c

    r593904c r9518a5b  
    288288  _CPU_ISR_Disable( level );
    289289
     290  _Thread_Dispatch_disable_level--;
     291
    290292  _ISR_Nest_level--;
    291293
     
    297299#endif
    298300
    299   _Thread_Dispatch_disable_level--;
    300 
    301301  _CPU_ISR_Enable( level );
    302302
    303   if ( _Thread_Dispatch_disable_level == 0 )
    304     {
    305       if(( _Context_Switch_necessary) || (! _ISR_Signals_to_thread_executing))
    306         {
    307           _ISR_Signals_to_thread_executing = FALSE;
    308           _Thread_Dispatch();
    309         }
     303  if ( _ISR_Nest_level )
     304    return;
     305
     306  if ( _Thread_Dispatch_disable_level ) {
     307    _ISR_Signals_to_thread_executing = FALSE;
     308    return;
    310309  }
    311 }
     310
     311  if ( _Context_Switch_necessary || _ISR_Signals_to_thread_executing ) {
     312    _ISR_Signals_to_thread_executing = FALSE;
     313    _Thread_Dispatch();
     314  }
     315}
Note: See TracChangeset for help on using the changeset viewer.