pthread_attr_setprio(3) — Subroutines
NAME
pthread_attr_setprio − Changes the scheduling priority attribute of thread creation.
SYNOPSIS
#include <pthread.h>
int pthread_attr_setprio(
pthread_attr_t ∗attr ,
int priority );
PARAMETERS
attrThread attributes object modified.
priorityNew value for the priority attribute. The priority attribute is dependent upon scheduling policy. Valid values fall within one of the following five ranges:
PRI_OTHER_MIN <= priority <= PRI_OTHER_MAX
PRI_FIFO_MIN <= priority <= PRI_FIFO_MAX
PRI_RR_MIN <= priority <= PRI_RR_MAX
PRI_FG_MIN_NP <= priority <= PRI_FG_MAX_NP
PRI_BG_MIN_NP <= priority <= PRI_BG_MAX_NP
The default priority is the midpoint between PRI_OTHER_MIN and PRI_OTHER_MAX. To specify a minimum or maximum priority, use the appropriate symbol — for example, PRI_FIFO_MIN or PRI_FIFO_MAX. To specify a value between the minimum and maximum, use an appropriate arithmetic expression. For example, to specify a priority mid-way between the minimum and maximum for the Round Robin scheduling policy, specify the following concept using your programming language’s syntax:
pri_rr_mid = (PRI_RR_MIN + PRI_RR_MAX)/2
If your expression results in a value outside the range of minimum to maximum, an error results when you attempt to use it.
DESCRIPTION
This routine sets the execution priority of threads that are created using the attributes object specified by the attr parameter.
By default, a created thread inherits the priority of the thread calling pthread_create. To specify a priority using this routine, scheduling inheritance must be disabled at the time the thread is created. Call pthread_attr_setinheritsched and specify the value PTHREAD_DEFAULT_SCHED for the inherit parameter before calling this routine and pthread_create.
An application specifies priority only to express the urgency of executing the thread relative to other threads. Priority is not used to control mutual exclusion when accessing shared data. With a sufficient number of processors executing, all ready threads, regardless of priority, execute simultaneously.
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 priority is invalid. |
| −1 | [ERANGE] | One or more parameters supplied have an invalid value. |
| −1 | [ESRCH] | The value specified by attr does not refer to an existing thread attributes object. |
RELATED INFORMATION
pthread_attr_create(3), pthread_attr_getprio(3), pthread_attr_setinheritsched(3), pthread_create(3)