Создать таймер
#include <sys/neutrino.h>int TimerCreate( clockid_t id,const struct sigevent *event );int TimerCreate_r( clockid_t id,const struct sigevent *event );
CLOCK_SOFTTIME для сна, не "разбудит" процессор, когда приложение должно проснуться. Это позволит процессору перейти в режим энергосбережения. Когда процессор не находится в режиме энергосбережения таймеры типа CLOCK_SOFTTIME аналогичны типу CLOCK_REALTIME. NULL, или указатель на структуру struct sigevent, содержащую событие, которое будет доставлено при срабатывании таймера.libc
Системные вызовы TimerCreate() и TimerCreate_r() создают для процесса таймер, использующий тип часов id.
Данные функции идентичны, но по разному указывают на ошибки.
Функция возвращает идентификатор таймера (timer ID), который используется в других таймерных функциях.
Таймер будет создан выключенным. Для его включения используется функция TimerSettime().
Структура struct sigevent содержит событие (уведомление), которое будет доставлено при срабатывании таймера. Рекомендуется использовать следующие типы событий:
SIGEV_PULSE для случая, когда поток в цикле принимает сообщения с помощью функции MsgReceivev(). В этом случае будут получены пульсы от таймера.
SIGEV_SIGNAL_THREAD.
SIGEV_UNBLOCK или SIGEV_INTR могут использоваться, но их использование не рекомендуется. Уведомление типа SIGEV_UNBLOCK обычно используется в системном вызове TimerTimeout(), а уведомление типа SIGEV_INTR предназначено для системного вызова InterruptWait(). Если параметр event равен NULL, то по истечении времени таймера процессу будет доставлен сигнал SIGALRM. Для установки обработчика этого сигнала необходимо вызвать функцию sigaction().
Данные вызовы являются неблокируемыми.
-1, код ошибки записывается в errno.
ЗОСРВ «Нейтрино»
struct sigevent, timer_create(), TimerAlarm(), TimerDestroy(), TimerInfo(), TimerSettime(), TimerTimeout()
Предыдущий раздел: Описание API системной библиотеки