summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2014-05-16 10:55:01 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2014-05-16 10:56:49 +0200
commit1ac0b083f84e4760331456e02928bfea97038e07 (patch)
tree906121b758c88f4e733c45f7c9489bf970a6b394
parentscore: Fix state diagram (diff)
downloadrtems-1ac0b083f84e4760331456e02928bfea97038e07.tar.bz2
score: Simplify SMP scheduler support
-rw-r--r--cpukit/score/include/rtems/score/schedulersmpimpl.h11
1 files changed, 3 insertions, 8 deletions
diff --git a/cpukit/score/include/rtems/score/schedulersmpimpl.h b/cpukit/score/include/rtems/score/schedulersmpimpl.h
index c63b464dd4..58ad844e0c 100644
--- a/cpukit/score/include/rtems/score/schedulersmpimpl.h
+++ b/cpukit/score/include/rtems/score/schedulersmpimpl.h
@@ -460,9 +460,6 @@ static inline void _Scheduler_SMP_Enqueue_ordered(
_Assert( lowest_scheduled != NULL);
- /*
- * NOTE: Do not exchange parameters to do the negation of the order check.
- */
if ( ( *order )( &thread->Object.Node, &lowest_scheduled->Object.Node ) ) {
Scheduler_SMP_Node *lowest_scheduled_node =
_Scheduler_SMP_Node_get( lowest_scheduled );
@@ -513,16 +510,14 @@ static inline void _Scheduler_SMP_Enqueue_scheduled_ordered(
/*
* The thread has been extracted from the scheduled chain. We have to place
* it now on the scheduled or ready set.
- *
- * NOTE: Do not exchange parameters to do the negation of the order check.
*/
- if ( !( *order )( &thread->Object.Node, &highest_ready->Object.Node ) ) {
+ if ( ( *order )( &thread->Object.Node, &highest_ready->Object.Node ) ) {
+ ( *insert_scheduled )( &self->Base, thread );
+ } else {
_Scheduler_SMP_Node_change_state( node, SCHEDULER_SMP_NODE_READY );
_Scheduler_SMP_Allocate_processor( self, highest_ready, thread );
( *insert_ready )( &self->Base, thread );
( *move_from_ready_to_scheduled )( &self->Base, highest_ready );
- } else {
- ( *insert_scheduled )( &self->Base, thread );
}
}