diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2020-05-12 07:06:37 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2020-05-12 07:08:16 +0200 |
commit | 934cbe7d9fa3f1c251eed213e0688a736567ca93 (patch) | |
tree | 87311a470253e0d89a4899ea46d102247bc2c2dc /cpukit/posix | |
parent | libtests/tar01: Remove files of tar01.tar archive (diff) | |
download | rtems-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.c | 10 |
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 ); |