# pthread_getschedparam

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


## SYNOPSIS



           #include <pthread.h>
    
           int pthread_getschedparam(pthread_t _thread_ , int *restrict _policy_ ,
               struct sched_param *restrict _param_);
           int pthread_setschedparam(pthread_t _thread_ , int _policy_ ,
               const struct sched_param *_param_);
    


## DESCRIPTION



           The _pthread_getschedparam_() and _pthread_setschedparam_() functions
           shall, respectively, get and set the scheduling policy and
           parameters of individual threads within a multi-threaded process
           to be retrieved and set. For SCHED_FIFO and SCHED_RR, the only
           required member of the **sched_param** structure is the priority
           _sched_priority_.  For SCHED_OTHER, the affected scheduling
           parameters are implementation-defined.
    
           The _pthread_getschedparam_() function shall retrieve the scheduling
           policy and scheduling parameters for the thread whose thread ID is
           given by _thread_ and shall store those values in _policy_ and _param_ ,
           respectively. The priority value returned from
           _pthread_getschedparam_() shall be the value specified by the most
           recent _pthread_setschedparam_(), _pthread_setschedprio_(), or
           _pthread_create_() call affecting the target thread. It shall not
           reflect any temporary adjustments to its priority as a result of
           any priority inheritance or ceiling functions. The
           _pthread_setschedparam_() function shall set the scheduling policy
           and associated scheduling parameters for the thread whose thread
           ID is given by _thread_ to the policy and associated parameters
           provided in _policy_ and _param_ , respectively.
    
           The _policy_ parameter may have the value SCHED_OTHER, SCHED_FIFO,
           or SCHED_RR. The scheduling parameters for the SCHED_OTHER policy
           are implementation-defined. The SCHED_FIFO and SCHED_RR policies
           shall have a single scheduling parameter, _priority_.
    
           If _POSIX_THREAD_SPORADIC_SERVER is defined, then the _policy_
           argument may have the value SCHED_SPORADIC, with the exception for
           the _pthread_setschedparam_() function that if the scheduling policy
           was not SCHED_SPORADIC at the time of the call, it is
           implementation-defined whether the function is supported; in other
           words, the implementation need not allow the application to
           dynamically change the scheduling policy to SCHED_SPORADIC. The
           sporadic server scheduling policy has the associated parameters
           _sched_ss_low_priority_ , _sched_ss_repl_period_ , _sched_ss_init_budget_ ,
           _sched_priority_ , and _sched_ss_max_repl_.  The specified
           _sched_ss_repl_period_ shall be greater than or equal to the
           specified _sched_ss_init_budget_ for the function to succeed; if it
           is not, then the function shall fail. The value of
           _sched_ss_max_repl_ shall be within the inclusive range
           [1,{SS_REPL_MAX}] for the function to succeed; if not, the
           function shall fail.  It is unspecified whether the
           _sched_ss_repl_period_ and _sched_ss_init_budget_ values are stored as
           provided by this function or are rounded to align with the
           resolution of the clock being used.
    
           If the _pthread_setschedparam_() function fails, the scheduling
           parameters shall not be changed for the target thread.
    


## RETURN VALUE



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


## ERRORS



           The _pthread_setschedparam_() function shall fail if:
    
           **ENOTSUP**
                  An attempt was made to set the policy or scheduling
                  parameters to an unsupported value.
    
           **ENOTSUP**
                  An attempt was made to dynamically change the scheduling
                  policy to SCHED_SPORADIC, and the implementation does not
                  support this change.
    
           The _pthread_setschedparam_() function may fail if:
    
           **EINVAL** The value specified by _policy_ or one of the scheduling
                  parameters associated with the scheduling policy _policy_ is
                  invalid.
    
           **EPERM** The caller does not have appropriate privileges to set
                  either the scheduling parameters or the scheduling policy
                  of the specified thread.
    
           **EPERM** The implementation does not allow the application to modify
                  one of the parameters to the value specified.
    
           These functions shall not return an error code of **[EINTR]**.
    
           _The following sections are informative._
    


## EXAMPLES



           None.
    


## APPLICATION USAGE



           None.
    


## RATIONALE



           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.
    


* * *