TimerCreate(), TimerCreate_r()

Создать таймер

Прототип:

#include <sys/neutrino.h>
int TimerCreate( clockid_t id,
const struct sigevent *event );
int TimerCreate_r( clockid_t id,
const struct sigevent *event );

Аргументы:

id
Тип часов таймера:
CLOCK_REALTIME
стандартные часы, определенные в POSIX. Основанные на этих часах таймеры, разбудят процессор, если он находится в режиме энергосбережения.
CLOCK_SOFTTIME
эти часы активны, когда процессор не находится в режиме энергосбережения. Например, приложение, использующее таймер на базе CLOCK_SOFTTIME для сна, не "разбудит" процессор, когда приложение должно проснуться. Это позволит процессору перейти в режим энергосбережения. Когда процессор не находится в режиме энергосбережения таймеры типа CLOCK_SOFTTIME аналогичны типу CLOCK_REALTIME.
CLOCK_MONOTONIC
эти часы всегда увеличиваются с постоянной скоростью и не могут быть отрегулированы.
event
NULL, или указатель на структуру struct sigevent, содержащую событие, которое будет доставлено при срабатывании таймера.

Библиотека:

libc

Описание:

Системные вызовы TimerCreate() и TimerCreate_r() создают для процесса таймер, использующий тип часов id.

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


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

Функция возвращает идентификатор таймера (timer ID), который используется в других таймерных функциях.

Таймер будет создан выключенным. Для его включения используется функция TimerSettime().

Структура struct sigevent содержит событие (уведомление), которое будет доставлено при срабатывании таймера. Рекомендуется использовать следующие типы событий:

Если параметр event равен NULL, то по истечении времени таймера процессу будет доставлен сигнал SIGALRM. Для установки обработчика этого сигнала необходимо вызвать функцию sigaction().

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

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

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

TimerCreate()
Идентификатор созданного таймера. Если возникла ошибка функция возвращает -1, код ошибки записывается в errno.
TimerCreate_r()
Идентификатор созданного таймера. Функция НЕ устанавливает errno. При возникновении ошибки функция возвращает один из представленных ниже кодов.

Коды ошибок:

EINVAL
Некорректный параметр clock ID.
EAGAIN
В системе нет свободных таймеров.
EFAULT
Возникла ошибка при доступе к буферам.

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

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

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

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

struct sigevent, timer_create(), TimerAlarm(), TimerDestroy(), TimerInfo(), TimerSettime(), TimerTimeout()




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