diff options
Diffstat (limited to 'cpukit/score/src/schedulerpriorityyield.c')
-rw-r--r-- | cpukit/score/src/schedulerpriorityyield.c | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/cpukit/score/src/schedulerpriorityyield.c b/cpukit/score/src/schedulerpriorityyield.c index f2aeada660..60bab3983e 100644 --- a/cpukit/score/src/schedulerpriorityyield.c +++ b/cpukit/score/src/schedulerpriorityyield.c @@ -19,7 +19,6 @@ #endif #include <rtems/score/schedulerpriorityimpl.h> -#include <rtems/score/isr.h> #include <rtems/score/threadimpl.h> void _Scheduler_priority_Yield( @@ -29,23 +28,19 @@ void _Scheduler_priority_Yield( { Scheduler_priority_Node *node = _Scheduler_priority_Node_get( the_thread ); Chain_Control *ready_chain = node->Ready_queue.ready_chain; - ISR_Level level; (void) scheduler; - _ISR_Disable( level ); - if ( !_Chain_Has_only_one_node( ready_chain ) ) { - _Chain_Extract_unprotected( &the_thread->Object.Node ); - _Chain_Append_unprotected( ready_chain, &the_thread->Object.Node ); + if ( !_Chain_Has_only_one_node( ready_chain ) ) { + _Chain_Extract_unprotected( &the_thread->Object.Node ); + _Chain_Append_unprotected( ready_chain, &the_thread->Object.Node ); - _ISR_Flash( level ); - - if ( _Thread_Is_heir( the_thread ) ) - _Thread_Heir = (Thread_Control *) _Chain_First( ready_chain ); - _Thread_Dispatch_necessary = true; + if ( _Thread_Is_heir( the_thread ) ) { + _Thread_Heir = (Thread_Control *) _Chain_First( ready_chain ); } - else if ( !_Thread_Is_heir( the_thread ) ) - _Thread_Dispatch_necessary = true; - _ISR_Enable( level ); + _Thread_Dispatch_necessary = true; + } else if ( !_Thread_Is_heir( the_thread ) ) { + _Thread_Dispatch_necessary = true; + } } |