diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 1995-07-31 22:22:38 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 1995-07-31 22:22:38 +0000 |
commit | 3a5dbdca1b37bacc18fe61701530d28c6f1254ee (patch) | |
tree | f66a52eed17566556efe5622d384bc6c01c9f4b3 /cpukit/score/src | |
parent | fixed path problem for POSIX (diff) | |
download | rtems-3a5dbdca1b37bacc18fe61701530d28c6f1254ee.tar.bz2 |
Switched to events for mp receive server and eliminated the special
blocking mechanism for it.
Diffstat (limited to 'cpukit/score/src')
-rw-r--r-- | cpukit/score/src/thread.c | 3 | ||||
-rw-r--r-- | cpukit/score/src/threadmp.c | 70 |
2 files changed, 2 insertions, 71 deletions
diff --git a/cpukit/score/src/thread.c b/cpukit/score/src/thread.c index a181780e52..9c9a7691c8 100644 --- a/cpukit/score/src/thread.c +++ b/cpukit/score/src/thread.c @@ -316,7 +316,8 @@ void _Thread_Clear_state( if ( the_thread->current_priority < _Thread_Heir->current_priority ) { _Thread_Heir = the_thread; - if ( _Modes_Is_preempt( _Thread_Executing->current_modes ) ) + if ( _Modes_Is_preempt( _Thread_Executing->current_modes ) || + the_thread->current_priority == 0 ) _Context_Switch_necessary = TRUE; } } diff --git a/cpukit/score/src/threadmp.c b/cpukit/score/src/threadmp.c index 5d352e2d25..f2b78cd8cd 100644 --- a/cpukit/score/src/threadmp.c +++ b/cpukit/score/src/threadmp.c @@ -157,73 +157,3 @@ restart: _ISR_Enable( level ); return NULL; } - -/*PAGE - * - * _Thread_MP_Block - * - */ - -void _Thread_MP_Block( void ) -{ - ISR_Level level; - - _ISR_Disable( level ); - - if ( _Thread_MP_Receive->Notepads[ 0 ] != 0 ) { - _Priority_Remove_from_bit_map( &_Thread_MP_Receive->Priority_map ); - - _Thread_MP_Receive->current_state = STATES_SUSPENDED; - - _ISR_Flash( level ); - - _Thread_Calculate_heir(); - - _Context_Switch_necessary = TRUE; - - _ISR_Enable( level ); - - _Thread_Dispatch_disable_level = 0; - - _Thread_Dispatch(); - - return; - - } - _ISR_Enable( level ); - -} - -/*PAGE - * - * _Thread_MP_Ready - * - */ - -void _Thread_MP_Ready( void ) -{ - ISR_Level level; - - _ISR_Disable( level ); - - if ( _States_Is_suspended( _Thread_MP_Receive->current_state ) ) { - _Priority_Add_to_bit_map( &_Thread_MP_Receive->Priority_map ); - - _Thread_MP_Receive->current_state = STATES_READY; - - _Thread_Heir = _Thread_MP_Receive; - - _Context_Switch_necessary = TRUE; - - _ISR_Enable( level ); - - if ( _Thread_Is_dispatching_enabled() ) - _Thread_Dispatch(); - - } else { - - _Thread_MP_Receive->Notepads[ 0 ] = 0; - _ISR_Enable( level ); - - } -} |