# pthread_attr_getinheritsched

## 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_attr_getinheritsched, pthread_attr_setinheritsched — get
           and set the inheritsched attribute (**REALTIME THREADS**)
    


## SYNOPSIS



           #include <pthread.h>
    
           int pthread_attr_getinheritsched(const pthread_attr_t *restrict _attr_ ,
               int *restrict _inheritsched_);
           int pthread_attr_setinheritsched(pthread_attr_t *_attr_ ,
               int _inheritsched_);
    


## DESCRIPTION



           The _pthread_attr_getinheritsched_() and
           _pthread_attr_setinheritsched_() functions, respectively, shall get
           and set the _inheritsched_ attribute in the _attr_ argument.
    
           When the attributes objects are used by _pthread_create_(), the
           _inheritsched_ attribute determines how the other scheduling
           attributes of the created thread shall be set.
    
           The supported values of _inheritsched_ shall be:
    
           PTHREAD_INHERIT_SCHED
                 Specifies that the thread scheduling attributes shall be
                 inherited from the creating thread, and the scheduling
                 attributes in this _attr_ argument shall be ignored.
    
           PTHREAD_EXPLICIT_SCHED
                 Specifies that the thread scheduling attributes shall be set
                 to the corresponding values from this attributes object.
    
           The symbols PTHREAD_INHERIT_SCHED and PTHREAD_EXPLICIT_SCHED are
           defined in the _< pthread.h>_ header.
    
           The following thread scheduling attributes defined by POSIX.1‐2008
           are affected by the _inheritsched_ attribute: scheduling policy
           (_schedpolicy_), scheduling parameters (_schedparam_), and scheduling
           contention scope (_contentionscope_).
    
           The behavior is undefined if the value specified by the _attr_
           argument to _pthread_attr_getinheritsched_() or
           _pthread_attr_setinheritsched_() does not refer to an initialized
           thread attributes object.
    


## RETURN VALUE



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


## ERRORS



           The _pthread_attr_setinheritsched_() function shall fail if:
    
           **ENOTSUP**
                  An attempt was made to set the attribute to an unsupported
                  value.
    
           The _pthread_attr_setinheritsched_() function may fail if:
    
           **EINVAL** The value of _inheritsched_ is not valid.
    
           These functions shall not return an error code of **[EINTR]**.
    
           _The following sections are informative._
    


## EXAMPLES



           None.
    


## APPLICATION USAGE



           After these attributes have been set, a thread can be created with
           the specified attributes using _pthread_create_().  Using these
           routines does not affect the current running thread.
    
           See _Section 2.9.4_ , _Thread Scheduling_ for further details on thread
           scheduling attributes and their default settings.
    


## RATIONALE



           If an implementation detects that the value specified by the _attr_
           argument to _pthread_attr_getinheritsched_() or
           _pthread_attr_setinheritsched_() does not refer to an initialized
           thread attributes object, it is recommended that the function
           should fail and report an **[EINVAL]** error.
    


## FUTURE DIRECTIONS



           None.
    


* * *