Changes the current scheduling policy and priority of a thread.
pthread_setscheduler( thread, scheduler, priority );
Argument Data Type Accessthread opaque pthread_t read scheduler integer read priority integer read
int pthread_setscheduler ( pthread_t thread, int scheduler, int priority);
SCHED_FIFO SCHED_RR SCHED_FG_NP or SCHED_OTHER SCHED_BG_NP
See Section 2.2.3.2 for a description of the scheduling policies.
Low HighPRI_FIFO_MIN PRI_FIFO_MAX PRI_RR_MIN PRI_RR_MAX PRI_OTHER_MIN PRI_OTHER_MAX PRI_FG_MIN_NP PRI_FG_MAX_NP PRI_BG_MIN_NP PRI_BG_MAX_NP
If you create a new thread without specifying a threads attributes object that contains a changed priority attribute, the default priority of the newly created thread is the midpoint between PRI_OTHER_MIN and PRI_OTHER_MAX (the midpoint between the minimum and the maximum for the SCHED_OTHER policy). (Section 2.7 describes how to specify priorities between the minimum and maximum values.)
A thread changes its own scheduling policy and priority by using the identifier returned by pthread_self. Changing the scheduling policy or priority, or both, of a thread can cause it to start executing or to be preempted by another thread.
This routine is different from pthread_attr_setprio and pthread_ attr_ setsched because those routines set the priority and scheduling policy attributes that are used to establish the priority and scheduling policy of a new thread when it is created. This routine, however, changes the priority and scheduling policy of an existing thread.
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 DescriptionScheduling Successful completion. policy value -1 [EINVAL] The value specified by scheduler is invalid. -1 [ENOTSUP] An attempt is made to set the policy to an unsupported value. -1 [ESRCH] The value specified by thread does not refer to an existing thread. -1 [EPERM] The caller does not have the appropriate privileges to set the priority of the specified thread.