SchedGet(), SchedGet_r()

Get the scheduling policy for a thread

Synopsis:

#include <sys/neutrino.h>

int SchedGet( pid_t pid,
              int tid,
              struct sched_param *param );

int SchedGet_r( pid_t pid,
                int tid,
                struct sched_param *param );

Arguments:

pid
0 or a process ID; see below.
tid
0 or a thread ID; see below.
param
A pointer to a sched_param structure where the function can store the scheduling parameters.

Library:

libc

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

Description:

The SchedGet() and SchedGet_r() kernel calls return the current scheduling policy and the parameters for the thread specified by tid in the process specified by pid. If pid is zero, the current process is used to look up a nonzero tid. If pid and tid are zero, then the calling thread is used.

These functions are identical except in the way they indicate errors. See the Returns section for details.


Note: Instead of using these kernel calls directly, consider calling pthread_getschedparam().

The scheduling policy is returned on success and is one of SCHED_FIFO, SCHED_RR, SCHED_SPORADIC, SCHED_OTHER, SCHED_ADJTOHEAD, or SCHED_ADJTOTAIL.

Blocking states

These calls don't block.

Returns:

The only difference between these functions is the way they indicate errors:

SchedGet()
The current scheduling policy. If an error occurs, -1 is returned and errno is set.
SchedGet_r()
The current scheduling policy. This function does NOT set errno. If an error occurs, the negative of a value from the Errors section is returned.

Errors:

EFAULT
A fault occurred when the kernel tried to access the buffers provided.
ESRCH
The process indicated by pid or thread indicated by tid doesn't exist.

Classification:

QNX Neutrino

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

See also:

pthread_getschedparam(), sched_param, SchedInfo(), SchedSet(), SchedYield()

Thread scheduling in the QNX Neutrino Microkernel chapter of the System Architecture guide

Scheduling policies in the Programming Overview chapter of the QNX Neutrino Programmer's Guide