diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2015-04-24 10:51:24 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2015-05-19 12:00:42 +0200 |
commit | a61d38501ac25f81913f2766a64e43f8dfdba2b0 (patch) | |
tree | 8886a352b371921c572400a7428a8846c45bd19f /cpukit/score/src/threadq.c | |
parent | score: Delete STATES_WAITING_ON_THREAD_QUEUE (diff) | |
download | rtems-a61d38501ac25f81913f2766a64e43f8dfdba2b0.tar.bz2 |
score: Optimize _Thread_queue_Compare_priority()
Diffstat (limited to 'cpukit/score/src/threadq.c')
-rw-r--r-- | cpukit/score/src/threadq.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/cpukit/score/src/threadq.c b/cpukit/score/src/threadq.c index bdd380d188..0ea0c82d83 100644 --- a/cpukit/score/src/threadq.c +++ b/cpukit/score/src/threadq.c @@ -29,19 +29,20 @@ RBTree_Compare_result _Thread_queue_Compare_priority( const RBTree_Node *right ) { - Priority_Control left_priority = - THREAD_RBTREE_NODE_TO_THREAD( left )->current_priority; - Priority_Control right_priority = - THREAD_RBTREE_NODE_TO_THREAD( right )->current_priority; + const Thread_Control *left_thread; + const Thread_Control *right_thread; + Priority_Control left_prio; + Priority_Control right_prio; + + left_thread = THREAD_RBTREE_NODE_TO_THREAD( left ); + right_thread = THREAD_RBTREE_NODE_TO_THREAD( right ); + left_prio = left_thread->current_priority; + right_prio = right_thread->current_priority; /* * SuperCore priorities use lower numbers to indicate greater importance. */ - if ( left_priority == right_priority ) - return 0; - if ( left_priority < right_priority ) - return -1; - return 1; + return ( left_prio > right_prio ) - ( left_prio < right_prio ); } void _Thread_queue_Initialize( |