pthread_attr_getinheritsched, pthread_attr_setinheritsched - get and set the inheritsched attribute (REALTIME THREADS)
[THR TPS] #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);
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 IEEE Std 1003.1-2001 are affected by the inheritsched attribute: scheduling policy ( schedpolicy), scheduling parameters ( schedparam), and scheduling contention scope ( contentionscope).
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.
The pthread_attr_getinheritsched() function may fail if:
- [EINVAL]
- The value specified by attr does not refer to an initialized thread attribute object.
The pthread_attr_setinheritsched() function may fail if:
- [EINVAL]
- The value of inheritsched is not valid.
- [EINVAL]
- The value specified by attr does not refer to an initialized thread attribute object.
- [ENOTSUP]
- An attempt was made to set the attribute to an unsupported value.
These functions shall not return an error code of [EINTR].
None.
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 Thread Scheduling for further details on thread scheduling attributes and their default settings.
None.
None.
pthread_attr_destroy(), pthread_attr_getscope(), pthread_attr_getschedpolicy(), pthread_attr_getschedparam(), pthread_create(), the Base Definitions volume of IEEE Std 1003.1-2001, <pthread.h>, <sched.h>
First released in Issue 5. Included for alignment with the POSIX Threads Extension.
Marked as part of the Realtime Threads Feature Group.
The pthread_attr_getinheritsched() and pthread_attr_setinheritsched() functions are marked as part of the Threads and Thread Execution Scheduling options.
The [ENOSYS] error condition has been removed as stubs need not be provided if an implementation does not support the Thread Execution Scheduling option.
The restrict keyword is added to the pthread_attr_getinheritsched() prototype for alignment with the ISO/IEC 9899:1999 standard.
IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/75 is applied, clarifying the values of inheritsched in the DESCRIPTION and adding two optional [EINVAL] errors to the ERRORS section for checking when attr refers to an uninitialized thread attribute object.
IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/77 is applied, adding a reference to Thread Scheduling in the APPLICATION USAGE section.