diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-10-19 11:25:25 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-11-23 11:00:28 +0100 |
commit | bd55f69f5bff8e9cc39bae08f489feaa94e1dbb3 (patch) | |
tree | 02fc8cde0766a7e3992c516e889dcece2edb8420 /cpukit | |
parent | score: Change _Scheduler_Try_to_schedule_node() (diff) | |
download | rtems-bd55f69f5bff8e9cc39bae08f489feaa94e1dbb3.tar.bz2 |
score: Simplify _Scheduler_Exchange_idle_thread()
Remove superfluous idle parameter.
Update #4531.
Diffstat (limited to 'cpukit')
-rw-r--r-- | cpukit/include/rtems/score/schedulerimpl.h | 16 | ||||
-rw-r--r-- | cpukit/include/rtems/score/schedulersmpimpl.h | 12 |
2 files changed, 11 insertions, 17 deletions
diff --git a/cpukit/include/rtems/score/schedulerimpl.h b/cpukit/include/rtems/score/schedulerimpl.h index 1e83f75891..7319cc4e4c 100644 --- a/cpukit/include/rtems/score/schedulerimpl.h +++ b/cpukit/include/rtems/score/schedulerimpl.h @@ -1042,22 +1042,24 @@ RTEMS_INLINE_ROUTINE Thread_Control *_Scheduler_Release_idle_thread( * @brief Exchanges an idle thread from the scheduler node that uses it * right now to another scheduler node. * - * @param needs_idle The scheduler node that needs an idle thread. - * @param uses_idle The scheduler node that used the idle thread. - * @param idle The idle thread that is exchanged. + * @param needs_idle is the scheduler node that needs an idle thread. + * + * @param uses_idle is the scheduler node that used the idle thread. */ RTEMS_INLINE_ROUTINE void _Scheduler_Exchange_idle_thread( Scheduler_Node *needs_idle, - Scheduler_Node *uses_idle, - Thread_Control *idle + Scheduler_Node *uses_idle ) { - uses_idle->idle = NULL; + _Scheduler_Node_set_idle_user( + needs_idle, + _Scheduler_Node_get_idle( uses_idle ) + ); _Scheduler_Node_set_user( uses_idle, _Scheduler_Node_get_owner( uses_idle ) ); - _Scheduler_Node_set_idle_user( needs_idle, idle ); + uses_idle->idle = NULL; } /** diff --git a/cpukit/include/rtems/score/schedulersmpimpl.h b/cpukit/include/rtems/score/schedulersmpimpl.h index f4ee72696f..a1a048d4ed 100644 --- a/cpukit/include/rtems/score/schedulersmpimpl.h +++ b/cpukit/include/rtems/score/schedulersmpimpl.h @@ -840,11 +840,7 @@ static inline void _Scheduler_SMP_Enqueue_to_scheduled( ( *insert_scheduled )( context, node, priority ); ( *move_from_scheduled_to_ready )( context, lowest_scheduled ); - _Scheduler_Exchange_idle_thread( - node, - lowest_scheduled, - _Scheduler_Node_get_idle( lowest_scheduled ) - ); + _Scheduler_Exchange_idle_thread( node, lowest_scheduled ); } else { _Assert( action == SCHEDULER_TRY_TO_SCHEDULE_DO_BLOCK ); _Scheduler_SMP_Node_change_state( node, SCHEDULER_SMP_NODE_BLOCKED ); @@ -1020,11 +1016,7 @@ static inline bool _Scheduler_SMP_Enqueue_scheduled( ( *insert_ready )( context, node, insert_priority ); ( *move_from_ready_to_scheduled )( context, highest_ready ); - _Scheduler_Exchange_idle_thread( - highest_ready, - node, - _Scheduler_Node_get_idle( node ) - ); + _Scheduler_Exchange_idle_thread( highest_ready, node ); return false; } else { _Assert( action == SCHEDULER_TRY_TO_SCHEDULE_DO_BLOCK ); |