From e5ca54c99682a264568d95d8a5db555ea8357e9c Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Wed, 7 Aug 2013 21:19:55 +0200 Subject: score: PR2136: Fix _Thread_Change_priority() Add call to _Scheduler_Schedule() in missing path after _Thread_Set_transient() in _Thread_Change_priority(). See also sptests/spintrcritical19. Add thread parameter to _Scheduler_Schedule(). This parameter is currently unused but may be used in future SMP schedulers. Do heir selection in _Scheduler_Schedule(). Use _Scheduler_Update_heir() for this in the particular scheduler implementation. Add and use _Scheduler_Generic_block(). --- cpukit/score/src/scheduleredfblock.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) (limited to 'cpukit/score/src/scheduleredfblock.c') diff --git a/cpukit/score/src/scheduleredfblock.c b/cpukit/score/src/scheduleredfblock.c index 4ad767d7bf..80bb1d5549 100644 --- a/cpukit/score/src/scheduleredfblock.c +++ b/cpukit/score/src/scheduleredfblock.c @@ -19,20 +19,15 @@ #include "config.h" #endif -#include -#include +#include void _Scheduler_EDF_Block( Thread_Control *the_thread ) { - _Scheduler_EDF_Extract( the_thread ); - - /* TODO: flash critical section? */ - - if ( _Thread_Is_heir( the_thread ) ) - _Scheduler_EDF_Schedule(); - - if ( _Thread_Is_executing( the_thread ) ) - _Thread_Dispatch_necessary = true; + _Scheduler_Generic_block( + _Scheduler_EDF_Extract, + _Scheduler_EDF_Schedule_body, + the_thread + ); } -- cgit v1.2.3