diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-03-22 07:22:08 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-03-22 07:22:08 +0100 |
commit | baa1362643f20781db1d50a5a4d23e7069d0972a (patch) | |
tree | 151893296e573d3e822d56970b0177950ccd804d /cpukit/score/include/rtems/score/schedulerimpl.h | |
parent | rtems: Rework rate-monotonic scheduler (diff) | |
download | rtems-baa1362643f20781db1d50a5a4d23e7069d0972a.tar.bz2 |
score: Fix for RTEMS_DEBUG
Update #2627.
Diffstat (limited to 'cpukit/score/include/rtems/score/schedulerimpl.h')
-rw-r--r-- | cpukit/score/include/rtems/score/schedulerimpl.h | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/cpukit/score/include/rtems/score/schedulerimpl.h b/cpukit/score/include/rtems/score/schedulerimpl.h index a41b7ea62f..5cf3503045 100644 --- a/cpukit/score/include/rtems/score/schedulerimpl.h +++ b/cpukit/score/include/rtems/score/schedulerimpl.h @@ -1352,9 +1352,14 @@ RTEMS_INLINE_ROUTINE void _Scheduler_Update_heir( if ( heir != new_heir && ( heir->is_preemptible || force_dispatch ) ) { #if defined(RTEMS_SMP) - /* We need this state only for _Thread_Get_CPU_time_used() */ - _Scheduler_Thread_change_state( heir, THREAD_SCHEDULER_BLOCKED ); - _Scheduler_Thread_change_state( new_heir, THREAD_SCHEDULER_SCHEDULED ); + /* + * We need this state only for _Thread_Get_CPU_time_used(). Cannot use + * _Scheduler_Thread_change_state() since THREAD_SCHEDULER_BLOCKED to + * THREAD_SCHEDULER_BLOCKED state changes are illegal for the real SMP + * schedulers. + */ + heir->Scheduler.state = THREAD_SCHEDULER_BLOCKED; + new_heir->Scheduler.state = THREAD_SCHEDULER_SCHEDULED; #endif _Thread_Update_CPU_time_used( heir, _Thread_Get_CPU( heir ) ); _Thread_Heir = new_heir; |