Gets and sets the inheritsched attribute (REALTIME THREADS).
#include <pthread.h>
#include <time.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, 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 are set.
Item | Description |
---|---|
PTHREAD_INHERIT_SCHED | Specifies that the thread scheduling attributes is inherited from the creating thread, and the scheduling attributes in this attr argument are ignored. |
PTHREAD_EXPLICIT_SCHED | Specifies that the thread scheduling attributes are set to the corresponding values from this attributes object. |
The PTHREAD_INHERIT_SCHED and PTHREAD_EXPLICIT_SCHED symbols 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).
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.
If successful, the pthread_attr_getinheritsched() and pthread_attr_setinheritsched() functions return 0; otherwise, an error number is returned to indicate the error.
The pthread_attr_setschedpolicy() function might fail if:
Item | Description |
---|---|
EINVAL | The value of inheritsched is not valid. |
ENOTSUP | An attempt was made to set the attribute to an unsupported value. |
These functions do not return an error code of EINTR.