[rtems commit] score: Use RTEMS_SMP in _Thread_Create_idle()
Sebastian Huber
sebh at rtems.org
Thu Jul 7 06:54:06 UTC 2022
Module: rtems
Branch: master
Commit: 80090639a62b50d7d66614ca789e4592924a06e5
Changeset: http://git.rtems.org/rtems/commit/?id=80090639a62b50d7d66614ca789e4592924a06e5
Author: Sebastian Huber <sebastian.huber at embedded-brains.de>
Date: Tue Jul 5 09:04:26 2022 +0200
score: Use RTEMS_SMP in _Thread_Create_idle()
Conditional expressions with inline functions are not optimized away if
optimization is disabled. Avoid such expressions to prevent dead
branches.
---
cpukit/score/src/threadcreateidle.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/cpukit/score/src/threadcreateidle.c b/cpukit/score/src/threadcreateidle.c
index be3cbca842..b5e0cfdc9b 100644
--- a/cpukit/score/src/threadcreateidle.c
+++ b/cpukit/score/src/threadcreateidle.c
@@ -112,10 +112,10 @@ static void _Thread_Create_idle_for_CPU( Per_CPU_Control *cpu )
void _Thread_Create_idle( void )
{
+#if defined(RTEMS_SMP)
uint32_t cpu_max;
uint32_t cpu_index;
- _System_state_Set( SYSTEM_STATE_BEFORE_MULTITASKING );
cpu_max = _SMP_Get_processor_maximum();
for ( cpu_index = 0 ; cpu_index < cpu_max ; ++cpu_index ) {
@@ -125,8 +125,12 @@ void _Thread_Create_idle( void )
_Thread_Create_idle_for_CPU( cpu );
}
}
+#else
+ _Thread_Create_idle_for_CPU( _Per_CPU_Get() );
+#endif
_CPU_Use_thread_local_storage(
&_Per_CPU_Get_executing( _Per_CPU_Get() )->Registers
);
+ _System_state_Set( SYSTEM_STATE_BEFORE_MULTITASKING );
}
More information about the vc
mailing list