From 934cbe7d9fa3f1c251eed213e0688a736567ca93 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Tue, 12 May 2020 07:06:37 +0200 Subject: posix: Get real priority in pthread_getattr_np() This is in line with pthread_setschedparam() and pthread_getschedparam(). Update #2514. --- cpukit/posix/src/pthreadgetattrnp.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'cpukit/posix/src/pthreadgetattrnp.c') diff --git a/cpukit/posix/src/pthreadgetattrnp.c b/cpukit/posix/src/pthreadgetattrnp.c index a449ad48eb..eae29d1de7 100644 --- a/cpukit/posix/src/pthreadgetattrnp.c +++ b/cpukit/posix/src/pthreadgetattrnp.c @@ -40,6 +40,7 @@ int pthread_getattr_np( ISR_lock_Context lock_context; Thread_CPU_budget_algorithms budget_algorithm; const Scheduler_Control *scheduler; + Priority_Control priority; bool ok; if ( attr == NULL ) { @@ -66,15 +67,12 @@ int pthread_getattr_np( } scheduler = _Thread_Scheduler_get_home( the_thread ); - attr->schedparam.sched_priority = _POSIX_Priority_From_core( - scheduler, - _Thread_Get_priority( the_thread ) - ); _POSIX_Threads_Get_sched_param_sporadic( the_thread, scheduler, &attr->schedparam ); + priority = the_thread->Real_priority.priority; if ( _Thread_Is_joinable( the_thread ) ) { attr->detachstate = PTHREAD_CREATE_JOINABLE; @@ -97,6 +95,10 @@ int pthread_getattr_np( attr->is_initialized = true; attr->contentionscope = PTHREAD_SCOPE_PROCESS; attr->cputime_clock_allowed = 1; + attr->schedparam.sched_priority = _POSIX_Priority_From_core( + scheduler, + priority + ); attr->schedpolicy = _POSIX_Thread_Translate_to_sched_policy( budget_algorithm ); -- cgit v1.2.3