diff options
Diffstat (limited to 'cpukit/score/src/scheduleredfyield.c')
-rw-r--r-- | cpukit/score/src/scheduleredfyield.c | 20 |
1 files changed, 6 insertions, 14 deletions
diff --git a/cpukit/score/src/scheduleredfyield.c b/cpukit/score/src/scheduleredfyield.c index 0ad5c32c7c..dae023a0c5 100644 --- a/cpukit/score/src/scheduleredfyield.c +++ b/cpukit/score/src/scheduleredfyield.c @@ -26,22 +26,14 @@ Scheduler_Void_or_thread _Scheduler_EDF_Yield( Thread_Control *the_thread ) { - Scheduler_EDF_Context *context = - _Scheduler_EDF_Get_context( scheduler ); - Scheduler_EDF_Node *node = _Scheduler_EDF_Thread_get_node( the_thread ); + Scheduler_EDF_Context *context; + Scheduler_EDF_Node *node; - /* - * The RBTree has more than one node, enqueue behind the tasks - * with the same priority in case there are such ones. - */ - _RBTree_Extract( &context->Ready, &node->Node ); - _RBTree_Insert( - &context->Ready, - &node->Node, - _Scheduler_EDF_Compare, - false - ); + context = _Scheduler_EDF_Get_context( scheduler ); + node = _Scheduler_EDF_Thread_get_node( the_thread ); + _Scheduler_EDF_Extract( context, node ); + _Scheduler_EDF_Enqueue( context, node, node->current_priority ); _Scheduler_EDF_Schedule_body( scheduler, the_thread, false ); SCHEDULER_RETURN_VOID_OR_NULL; |