Update #2556. --- cpukit/score/include/rtems/score/threadimpl.h | 13 +++++++++++++ cpukit/score/src/threadchangepriority.c | 5 +---- cpukit/score/src/threadqops.c | 5 +---- 3 files changed, 15 insertions(+), 8 deletions(-)
diff --git a/cpukit/score/include/rtems/score/threadimpl.h b/cpukit/score/include/rtems/score/threadimpl.h index 7b978ea..f3512d9 100644 --- a/cpukit/score/include/rtems/score/threadimpl.h +++ b/cpukit/score/include/rtems/score/threadimpl.h @@ -1027,6 +1027,19 @@ RTEMS_INLINE_ROUTINE Scheduler_Node *_Thread_Scheduler_get_node_by_index( #endif } +#if defined(RTEMS_SMP) +RTEMS_INLINE_ROUTINE void _Thread_Scheduler_add_wait_node( + Thread_Control *the_thread, + Scheduler_Node *scheduler_node +) +{ + _Chain_Append_unprotected( + &the_thread->Scheduler.Wait_nodes, + &scheduler_node->Thread.Wait_node + ); +} +#endif + /** * @brief Returns the priority of the thread. * diff --git a/cpukit/score/src/threadchangepriority.c b/cpukit/score/src/threadchangepriority.c index 41b6382..afce28a 100644 --- a/cpukit/score/src/threadchangepriority.c +++ b/cpukit/score/src/threadchangepriority.c @@ -50,10 +50,7 @@ static void _Thread_Priority_action_add( scheduler_node = SCHEDULER_NODE_OF_WAIT_PRIORITY( priority_aggregation ); the_thread = arg; - _Chain_Append_unprotected( - &the_thread->Scheduler.Wait_nodes, - &scheduler_node->Thread.Wait_node - ); + _Thread_Scheduler_add_wait_node( the_thread, scheduler_node ); _Thread_Set_scheduler_node_priority( priority_aggregation, false ); _Priority_Set_action_type( priority_aggregation, PRIORITY_ACTION_ADD ); _Priority_Actions_add( priority_actions, priority_aggregation ); diff --git a/cpukit/score/src/threadqops.c b/cpukit/score/src/threadqops.c index c0e0f67..31b5875 100644 --- a/cpukit/score/src/threadqops.c +++ b/cpukit/score/src/threadqops.c @@ -1207,10 +1207,7 @@ static void _Thread_queue_Priority_inherit_do_surrender_add( scheduler_node = SCHEDULER_NODE_OF_WAIT_PRIORITY( priority_aggregation ); the_thread = arg; - _Chain_Append_unprotected( - &the_thread->Scheduler.Wait_nodes, - &scheduler_node->Thread.Wait_node - ); + _Thread_Scheduler_add_wait_node( the_thread, scheduler_node ); _Scheduler_Node_set_priority( scheduler_node, _Priority_Get_priority( priority_aggregation ), -- 1.8.4.5 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel