[Return to Bookshelf] [Contents] [Previous Section] [Next Section] [Index] [Help]


pthread_attr_setinheritsched

Changes the inherit scheduling attribute of the specified thread attributes object.

Syntax

pthread_attr_setinheritsched(
                             attr,
                             inherit );
 


Argument Data Type Access

attr opaque pthread_attr_t read inherit integer read


C Binding

int
pthread_attr_setinheritsched (
pthread_attr_t *attr,
int inherit);

Arguments

attr
Thread attributes object to be modified.
inherit
New value for the inherit scheduling attribute. Valid values are as follows:
PTHREAD_INHERIT_      This is the default value. The created thread
SCHED                 inherits the current priority and scheduling
                      policy of the thread calling pthread_create.

PTHREAD_DEFAULT_      The created thread starts execution with the
SCHED                 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 inherit is invalid. -1 [ESRCH] The value specified by attr does not refer to an existing thread attributes object.



[Return to Bookshelf] [Contents] [Previous Section] [Next Section] [Index] [Help]