pthread_setschedparam()

Updated: October 28, 2024

Set thread scheduling parameters

Synopsis:

#include <pthread.h>

int pthread_setschedparam(
               pthread_t thread,
               int policy,
               const struct sched_param *param );

Arguments:

thread
The ID of the thread that you want to set the scheduling parameters for. You can get a thread ID by calling pthread_create() or pthread_self().
policy
The new scheduling policy; one of:
  • SCHED_FIFO — a fixed-priority scheduler in which the highest priority, ready thread runs until it blocks or is preempted by a higher priority thread.
  • SCHED_RR — the same as SCHED_FIFO, except threads at the same priority level timeslice (round robin) every 4 × the clock period (see ClockPeriod()).
  • SCHED_OTHER — currently the same as SCHED_RR.
  • SCHED_SPORADIC — sporadic scheduling.

For more information, see Thread scheduling in the QNX Neutrino Microkernel chapter of the System Architecture guide.

param
A pointer to a sched_param structure that specifies the scheduling parameters that you want to use.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

The pthread_setschedparam() function sets the scheduling policy and associated scheduling parameters of thread thread to the values specified in policy and param.

Note: In order to change the thread's priority to a value above the maximum permitted for unprivileged processes, your process must have the PROCMGR_AID_PRIORITY ability enabled. For more information, see procmgr_ability().

Returns:

EOK
Success.
EINVAL
Invalid scheduling policy policy or parameters param.
ENOTSUP
Unsupported scheduling policy policy or parameters param.
EPERM
The calling process doesn't have the required permission; see procmgr_ability().
ESRCH
Invalid thread ID thread.

Classification:

POSIX 1003.1 TPS

Safety:  
Cancellation point No
Interrupt handler No
Signal handler Yes
Thread Yes