summaryrefslogtreecommitdiffstats
path: root/cpukit/posix
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/posix')
-rw-r--r--cpukit/posix/include/rtems/posix/posixapi.h3
-rw-r--r--cpukit/posix/src/mutexsetprioceiling.c1
-rw-r--r--cpukit/posix/src/pthread.c4
-rw-r--r--cpukit/posix/src/pthreadgetschedparam.c1
4 files changed, 5 insertions, 4 deletions
diff --git a/cpukit/posix/include/rtems/posix/posixapi.h b/cpukit/posix/include/rtems/posix/posixapi.h
index 12baa75eea..b35874d8ea 100644
--- a/cpukit/posix/include/rtems/posix/posixapi.h
+++ b/cpukit/posix/include/rtems/posix/posixapi.h
@@ -89,7 +89,7 @@ RTEMS_INLINE_ROUTINE int _POSIX_Zero_or_minus_one_plus_errno(
* @brief Macro to generate a function body to get a POSIX object by
* identifier.
*
- * Generates a function body to get the object for the specified indentifier.
+ * Generates a function body to get the object for the specified identifier.
* Performs automatic initialization if requested and necessary. This is an
* ugly macro, since C lacks support for templates.
*/
@@ -105,6 +105,7 @@ RTEMS_INLINE_ROUTINE int _POSIX_Zero_or_minus_one_plus_errno(
if ( id == NULL ) { \
return NULL; \
} \
+ _Thread_queue_Initialize( queue_context ); \
the_object = _Objects_Get( \
(Objects_Id) *id, \
&queue_context->Lock_context.Lock_context, \
diff --git a/cpukit/posix/src/mutexsetprioceiling.c b/cpukit/posix/src/mutexsetprioceiling.c
index aaea57ddfb..f483a2b495 100644
--- a/cpukit/posix/src/mutexsetprioceiling.c
+++ b/cpukit/posix/src/mutexsetprioceiling.c
@@ -67,7 +67,6 @@ int pthread_mutex_setprioceiling(
Thread_queue_Context queue_context;
Per_CPU_Control *cpu_self;
- _Thread_queue_Context_clear_priority_updates( &queue_context );
_CORE_ceiling_mutex_Set_priority(
&the_mutex->Mutex,
new_priority,
diff --git a/cpukit/posix/src/pthread.c b/cpukit/posix/src/pthread.c
index 6a39e3ed5e..eb7d652d77 100644
--- a/cpukit/posix/src/pthread.c
+++ b/cpukit/posix/src/pthread.c
@@ -91,8 +91,8 @@ void _POSIX_Threads_Sporadic_timer( Watchdog_Control *watchdog )
api = RTEMS_CONTAINER_OF( watchdog, POSIX_API_Control, Sporadic.Timer );
the_thread = api->thread;
- _Thread_queue_Context_clear_priority_updates( &queue_context );
_Thread_Wait_acquire( the_thread, &queue_context );
+ _Thread_queue_Context_clear_priority_updates( &queue_context );
if ( _Priority_Node_is_active( &api->Sporadic.Low_priority ) ) {
_Thread_Priority_add(
@@ -122,8 +122,8 @@ void _POSIX_Threads_Sporadic_budget_callout( Thread_Control *the_thread )
api = the_thread->API_Extensions[ THREAD_API_POSIX ];
- _Thread_queue_Context_clear_priority_updates( &queue_context );
_Thread_Wait_acquire( the_thread, &queue_context );
+ _Thread_queue_Context_clear_priority_updates( &queue_context );
/*
* This will prevent the thread from consuming its entire "budget"
diff --git a/cpukit/posix/src/pthreadgetschedparam.c b/cpukit/posix/src/pthreadgetschedparam.c
index 88cd5fde98..b60022d87f 100644
--- a/cpukit/posix/src/pthreadgetschedparam.c
+++ b/cpukit/posix/src/pthreadgetschedparam.c
@@ -53,6 +53,7 @@ int pthread_getschedparam(
api = the_thread->API_Extensions[ THREAD_API_POSIX ];
+ _Thread_queue_Context_initialize( &queue_context );
_Thread_Wait_acquire_critical( the_thread, &queue_context );
*policy = api->Attributes.schedpolicy;