diff options
Diffstat (limited to 'cpukit/posix')
-rw-r--r-- | cpukit/posix/include/rtems/posix/posixapi.h | 3 | ||||
-rw-r--r-- | cpukit/posix/src/mutexsetprioceiling.c | 1 | ||||
-rw-r--r-- | cpukit/posix/src/pthread.c | 4 | ||||
-rw-r--r-- | cpukit/posix/src/pthreadgetschedparam.c | 1 |
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; |