SchedGet(), SchedGet_r()

Получить параметры планирования и дисциплину потока

Прототип:

#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 );

Аргументы:

pid
0 или идентификатор процесса.
tid
0 или идентификатор потока.
param
Указатель на struct sched_param, где функция хранит параметры планирования.

Библиотека:

libc

Описание:

Вызовы ядра SchedGet() и SchedGet_r() возвращают текущую дисциплину планирования и параметры для потока tid в процессе pid. Если pid равен нулю, подразумевается текущий процесс и ненулевой tid. Если pid и tid равны нулю, подразумевается вызывающий поток.

Обе функции идентичны за исключением способа возврата ошибок.


Note: Рекомендуется использовать функцию pthread_getschedparam() вместо прямых вызовов ядра.

Дисциплина планирования возвращается в случае успешного выполнения функции и является одной из следующих:

SCHED_FIFO
SCHED_RR
SCHED_SPORADIC
SCHED_OTHER
SCHED_ADJTOHEAD
SCHED_ADJTOTAIL

Состояния блокировки:

Данные вызовы являются неблокируемыми.

Возвращаемое значение:

SchedGet()
Текущая дисциплина планирования. Если возникла ошибка функция возвращает -1, код ошибки записывается в errno.
SchedGet_r()
Текущая дисциплина планирования. Функция НЕ устанавливает errno. При возникновении ошибки функция возвращает один из представленных ниже кодов.

Коды ошибок:

EFAULT
Произошла ошибка при попытке ядра получить доступ к предоставленным буферам.
ESRCH
Процесс pid или поток tid не существуют.

Классификация:

ЗОСРВ «Нейтрино»

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

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




Предыдущий раздел: Описание API системной библиотеки