Use pthread_setschedparam(3C) to modify the scheduling policy and scheduling parameters of an individual thread.
int pthread_setschedparam(pthread_t tid, int policy, const struct sched_param *param);
#include <pthread.h> pthread_t tid; int ret; struct sched_param param; int priority; /* sched_priority will be the priority of the thread */ sched_param.sched_priority = priority; policy = SCHED_OTHER; /* scheduling parameters of target thread */ ret = pthread_setschedparam(tid, policy, ¶m);
Supported policies are SCHED_FIFO, SCHED_RR, and SCHED_OTHER.
pthread_setschedparam() returns zero after completing successfully. Any other return value indicates that an error occurred. When either of the following conditions occurs, the pthread_setschedparam() function fails and returns the corresponding value.
EINVAL
Description: The value of the attribute being set is not valid.
EPERM
Description: The caller does not have the appropriate permission to set either the scheduling parameters or the scheduling policy of the specified thread.
ESRCH
Description: The value specified by tid does not refer to an existing thread.