pthread_attr_setinheritsched(3) — Subroutines
Digital
NAME
pthread_attr_setinheritsched − Changes the inherit scheduling attribute of the specified thread attributes object.
SYNOPSIS
#include <pthread.h>
int pthread_attr_setinheritsched(
pthread_attr_t ∗attr ,
int inherit );
PARAMETERS
attrThread attributes object to be modified.
inheritNew value for the inherit scheduling attribute. Valid values are as follows:
PTHREAD_INHERIT_SCHED
This is the default value. The created thread inherits the current priority and scheduling policy of the thread calling pthread_create.
PTHREAD_DEFAULT_SCHED
The created thread starts execution with the priority and scheduling policy stored in the thread attributes object.
DESCRIPTION
This routine changes the inherit scheduling attribute of thread creation. The inherit scheduling attribute specifies whether threads created using the specified thread attributes object inherit the scheduling attributes of the creating thread, or use the scheduling attributes stored in the thread attributes object that is passed to pthread_create.
The first thread in an application that is not created by an explicit call to pthread_create has a scheduling policy of SCHED_OTHER. See the pthread_attr_setprio and pthread_attr_setsched routines for more information on valid priority values and valid scheduling policy values, respectively.
Inheriting scheduling attributes (instead of using the scheduling attributes stored in the attributes object) is useful when a thread is creating several helper threads — threads that are intended to work closely with the creating thread to cooperatively solve the same problem. For example, inherited scheduling attributes ensure that helper threads created in a sort routine execute with the same priority as the calling thread.
RETURN VALUES
If an error condition occurs, this routine returns −1 and sets errno to the corresponding error value. Possible return values are as follows:
| Return | Error | Description |
| 0 | Successful completion. | |
| −1 | [EINVAL] | The value specified by attr is invalid. |
| −1 | [ESRCH] | The value specified by attr does not refer to an existing thread attributes object. |
RELATED INFORMATION
pthread_attr_create(3), pthread_attr_getinheritsched(3), pthread_attr_setprio(3), pthread_attr_setsched(3), pthread_create(3)