[rtems commit] posix: Get real priority in pthread_getattr_np()

Sebastian Huber sebh at rtems.org
Mon May 18 07:05:30 UTC 2020


Module:    rtems
Branch:    master
Commit:    934cbe7d9fa3f1c251eed213e0688a736567ca93
Changeset: http://git.rtems.org/rtems/commit/?id=934cbe7d9fa3f1c251eed213e0688a736567ca93

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Tue May 12 07:06:37 2020 +0200

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(-)

diff --git a/cpukit/posix/src/pthreadgetattrnp.c b/cpukit/posix/src/pthreadgetattrnp.c
index a449ad4..eae29d1 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 );
 



More information about the vc mailing list