# pthread_mutex_getprioceiling

## PROLOG



           This manual page is part of the POSIX Programmer's Manual.  The
           Linux implementation of this interface may differ (consult the
           corresponding Linux manual page for details of Linux behavior), or
           the interface may not be implemented on Linux.
    


## NAME



           pthread_mutex_getprioceiling, pthread_mutex_setprioceiling — get
           and set the priority ceiling of a mutex (**REALTIME THREADS**)
    


## SYNOPSIS



           #include <pthread.h>
    
           int pthread_mutex_getprioceiling(const pthread_mutex_t *restrict _mutex_ ,
               int *restrict _prioceiling_);
           int pthread_mutex_setprioceiling(pthread_mutex_t *restrict _mutex_ ,
               int _prioceiling_ , int *restrict _old_ceiling_);
    


## DESCRIPTION



           The _pthread_mutex_getprioceiling_() function shall return the
           current priority ceiling of the mutex.
    
           The _pthread_mutex_setprioceiling_() function shall attempt to lock
           the mutex as if by a call to _pthread_mutex_lock_(), except that the
           process of locking the mutex need not adhere to the priority
           protect protocol. On acquiring the mutex it shall change the
           mutex's priority ceiling and then release the mutex as if by a
           call to _pthread_mutex_unlock_().  When the change is successful,
           the previous value of the priority ceiling shall be returned in
           _old_ceiling_.
    
           If the _pthread_mutex_setprioceiling_() function fails, the mutex
           priority ceiling shall not be changed.
    


## RETURN VALUE



           If successful, the _pthread_mutex_getprioceiling_() and
           _pthread_mutex_setprioceiling_() functions shall return zero;
           otherwise, an error number shall be returned to indicate the
           error.
    


## ERRORS



           These functions shall fail if:
    
           **EINVAL** The protocol attribute of _mutex_ is PTHREAD_PRIO_NONE.
    
           **EPERM** The implementation requires appropriate privileges to
                  perform the operation and the caller does not have
                  appropriate privileges.
    
           The _pthread_mutex_setprioceiling_() function shall fail if:
    
           **EAGAIN** The mutex could not be acquired because the maximum number
                  of recursive locks for _mutex_ has been exceeded.
    
           **EDEADLK**
                  The mutex type is PTHREAD_MUTEX_ERRORCHECK and the current
                  thread already owns the mutex.
    
           **EINVAL** The mutex was created with the protocol attribute having
                  the value PTHREAD_PRIO_PROTECT and the calling thread's
                  priority is higher than the mutex's current priority
                  ceiling, and the implementation adheres to the priority
                  protect protocol in the process of locking the mutex.
    
           **ENOTRECOVERABLE**
                  The mutex is a robust mutex and the state protected by the
                  mutex is not recoverable.
    
           **EOWNERDEAD**
                  The mutex is a robust mutex and the process containing the
                  previous owning thread terminated while holding the mutex
                  lock. The mutex lock shall be acquired by the calling
                  thread and it is up to the new owner to make the state
                  consistent (see pthread_mutex_lock(3p)).
    
           The _pthread_mutex_setprioceiling_() function may fail if:
    
           **EDEADLK**
                  A deadlock condition was detected.
    
           **EINVAL** The priority requested by _prioceiling_ is out of range.
    
           **EOWNERDEAD**
                  The mutex is a robust mutex and the previous owning thread
                  terminated while holding the mutex lock. The mutex lock
                  shall be acquired by the calling thread and it is up to the
                  new owner to make the state consistent (see
                  pthread_mutex_lock(3p)).
    
           These functions shall not return an error code of **[EINTR]**.
    
           _The following sections are informative._
    


## EXAMPLES



           None.
    


## APPLICATION USAGE



           None.
    


## RATIONALE



           None.
    


## FUTURE DIRECTIONS



           None.
    


* * *