summaryrefslogtreecommitdiffstats
path: root/cpukit/posix
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2020-05-12 07:06:37 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2020-05-12 07:08:16 +0200
commit934cbe7d9fa3f1c251eed213e0688a736567ca93 (patch)
tree87311a470253e0d89a4899ea46d102247bc2c2dc /cpukit/posix
parentlibtests/tar01: Remove files of tar01.tar archive (diff)
downloadrtems-934cbe7d9fa3f1c251eed213e0688a736567ca93.tar.bz2
posix: Get real priority in pthread_getattr_np()
This is in line with pthread_setschedparam() and pthread_getschedparam(). Update #2514.
Diffstat (limited to 'cpukit/posix')
-rw-r--r--cpukit/posix/src/pthreadgetattrnp.c10
1 files changed, 6 insertions, 4 deletions
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 );