# pthread_setschedprio

## 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_setschedprio — dynamic thread scheduling parameters access
           (**REALTIME THREADS**)
    


## SYNOPSIS



           #include <pthread.h>
    
           int pthread_setschedprio(pthread_t _thread_ , int _prio_);
    


## DESCRIPTION



           The _pthread_setschedprio_() function shall set the scheduling
           priority for the thread whose thread ID is given by _thread_ to the
           value given by _prio_.  See _Scheduling Policies_ for a description on
           how this function call affects the ordering of the thread in the
           thread list for its new priority.
    
           If the _pthread_setschedprio_() function fails, the scheduling
           priority of the target thread shall not be changed.
    


## RETURN VALUE



           If successful, the _pthread_setschedprio_() function shall return
           zero; otherwise, an error number shall be returned to indicate the
           error.
    


## ERRORS



           The _pthread_setschedprio_() function may fail if:
    
           **EINVAL** The value of _prio_ is invalid for the scheduling policy of
                  the specified thread.
    
           **EPERM** The caller does not have appropriate privileges to set the
                  scheduling priority of the specified thread.
    
           The _pthread_setschedprio_() function shall not return an error code
           of **[EINTR]**.
    
           _The following sections are informative._
    


## EXAMPLES



           None.
    


## APPLICATION USAGE



           None.
    


## RATIONALE



           The _pthread_setschedprio_() function provides a way for an
           application to temporarily raise its priority and then lower it
           again, without having the undesired side-effect of yielding to
           other threads of the same priority. This is necessary if the
           application is to implement its own strategies for bounding
           priority inversion, such as priority inheritance or priority
           ceilings. This capability is especially important if the
           implementation does not support the Thread Priority Protection or
           Thread Priority Inheritance options, but even if those options are
           supported it is needed if the application is to bound priority
           inheritance for other resources, such as semaphores.
    
           The standard developers considered that while it might be
           preferable conceptually to solve this problem by modifying the
           specification of _pthread_setschedparam_(), it was too late to make
           such a change, as there may be implementations that would need to
           be changed. Therefore, this new function was introduced.
    
           If an implementation detects use of a thread ID after the end of
           its lifetime, it is recommended that the function should fail and
           report an **[ESRCH]** error.
    


## FUTURE DIRECTIONS



           None.
    


* * *