On Fri, Nov 4, 2016 at 9:08 AM, Sebastian Huber <sebastian.hu...@embedded-brains.de> wrote: > --- > cpukit/score/include/rtems/score/percpu.h | 2 +- > testsuites/tmtests/tm26/task1.c | 12 +----------- > testsuites/tmtests/tm27/task1.c | 15 +++++++++++---- > 3 files changed, 13 insertions(+), 16 deletions(-) > > diff --git a/cpukit/score/include/rtems/score/percpu.h > b/cpukit/score/include/rtems/score/percpu.h > index 066bf4c..1ccbc3b 100644 > --- a/cpukit/score/include/rtems/score/percpu.h > +++ b/cpukit/score/include/rtems/score/percpu.h > @@ -688,7 +688,7 @@ bool _Per_CPU_State_wait_for_non_initial_state( > #define _Thread_Heir \ > _Per_CPU_Get()->heir > #define _Thread_Executing \ > - _Per_CPU_Get()->executing > + _Per_CPU_Get_executing( _Per_CPU_Get() ) > #define _ISR_Nest_level \ > _Per_CPU_Get()->isr_nest_level > #define _CPU_Interrupt_stack_low \ > diff --git a/testsuites/tmtests/tm26/task1.c b/testsuites/tmtests/tm26/task1.c > index 173cf7f..9d157e9 100644 > --- a/testsuites/tmtests/tm26/task1.c > +++ b/testsuites/tmtests/tm26/task1.c > @@ -123,17 +123,7 @@ static void set_thread_heir( Thread_Control *thread ) > > static void set_thread_executing( Thread_Control *thread ) > { > -#if defined( PREVENT_SMP_ASSERT_FAILURES ) > - ISR_Level level; > - > - _ISR_Local_disable( level ); > -#endif > - > - _Thread_Executing = thread; > - > -#if defined( PREVENT_SMP_ASSERT_FAILURES ) > - _ISR_Local_enable( level ); > -#endif > + _Per_CPU_Get_snapshot()->executing = thread; Normally one thinks of a snapshot as a read-only kind of thing, like a picture. So I was a little confused by this terminology--for some reason I hadn't noticed this _Per_CPU_Get_snapshot() before now.
> } > > static void thread_resume( Thread_Control *thread ) > diff --git a/testsuites/tmtests/tm27/task1.c b/testsuites/tmtests/tm27/task1.c > index 9126391..c89c095 100644 > --- a/testsuites/tmtests/tm27/task1.c > +++ b/testsuites/tmtests/tm27/task1.c > @@ -46,6 +46,11 @@ rtems_isr Isr_handler( > rtems_vector_number vector > ); > > +static void set_thread_executing( Thread_Control *thread ) > +{ > + _Per_CPU_Get_snapshot()->executing = thread; > +} > + > rtems_task Init( > rtems_task_argument argument > ) > @@ -191,8 +196,9 @@ rtems_task Task_1( > _ISR_Local_disable(level); > #endif > > - _Thread_Executing = > - (Thread_Control *) > _Chain_First(&scheduler_context->Ready[LOW_PRIORITY]); > + set_thread_executing( > + (Thread_Control *) _Chain_First(&scheduler_context->Ready[LOW_PRIORITY]) > + ); > > _Thread_Dispatch_necessary = 1; > > @@ -265,8 +271,9 @@ rtems_task Task_2( > _Thread_State_acquire( executing, &state_lock_context ); > _Scheduler_Acquire_critical( scheduler, &scheduler_lock_context ); > > - _Thread_Executing = > - (Thread_Control *) > _Chain_First(&scheduler_context->Ready[LOW_PRIORITY]); > + set_thread_executing( > + (Thread_Control *) _Chain_First(&scheduler_context->Ready[LOW_PRIORITY]) > + ); > > _Thread_Dispatch_necessary = 1; > > -- > 1.8.4.5 > > _______________________________________________ > devel mailing list > devel@rtems.org > http://lists.rtems.org/mailman/listinfo/devel _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel