pthread_attr_getinheritsched, pthread_attr_setinheritsched Subroutine

Purpose

Gets and sets the inheritsched attribute (REALTIME THREADS).

Syntax

#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); 

Description

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).

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.

Return Values

If successful, the pthread_attr_getinheritsched() and pthread_attr_setinheritsched() functions return 0; otherwise, an error number is returned to indicate the error.

Error Codes

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.