pthread_setschedparam()

QNX SDP8.0C Library ReferenceAPIDeveloper

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 pthread_attr_setschedpolicy(), and Scheduling policies in the chapter on the microkernel in the System Architecture guide.
  • SCHED_HIGH_PRIORITY_IST — a FIFO scheduling policy that allows a thread to go at or above the clock IST, but below 255.
    Note:
    The SCHED_HIGH_PRIORITY_IST policy is intended only for ISTs. For more information, see Interrupt Service Thread (IST) in the Programmer's Guide.
  • SCHED_OFFLINING — a FIFO scheduling policy intended for CPU offlining that allows a thread to be of higher priority than the clock IST.
    CAUTION:
    To set the SCHED_OFFLINING policy, the process must have the runstate ability enabled. For more information, go to Abilities Reference in the QNX OS System Security Guide.

For more information, see Thread scheduling in the IDE 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 pointNo
Signal handlerYes
ThreadYes
Page updated: