Use the home scheduler of the executing thread for the created thread. This is in line with pthread_create(). Using the current processor may pick up an unexpected scheduler in case of a temporary migration, e.g. due to locking protocols. --- cpukit/rtems/src/taskcreate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/cpukit/rtems/src/taskcreate.c b/cpukit/rtems/src/taskcreate.c index e231d4a..2695382 100644 --- a/cpukit/rtems/src/taskcreate.c +++ b/cpukit/rtems/src/taskcreate.c @@ -90,7 +90,7 @@ rtems_status_code rtems_task_create( } } - scheduler = _Scheduler_Get_by_CPU_index( _SMP_Get_current_processor() ); + scheduler = _Thread_Scheduler_get_home( _Thread_Get_executing() ); priority = _RTEMS_Priority_To_core( scheduler, initial_priority, &valid ); if ( !valid ) { -- 1.8.4.5 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel