Использование событий (event.h)
API определен в заголовочном файле sysroot-*-kos/include/kos/event.h из состава KasperskyOS SDK. Также в составе KasperskyOS SDK поставляется заголовочный файл sysroot-*-kos/include/kos/sync_api.h, который дает возможность транзитивно включить в исходный код программы заголовочный файл event.h и заголовочные файлы для использования других примитивов синхронизации.
API предназначен для синхронизации потоков исполнения на основе событий. Событие – примитив синхронизации, который используется для уведомления одного или нескольких потоков исполнения о выполнении требуемого этим потокам условия. Уведомляемый поток исполнения ожидает, когда событие перейдет из несигнального состояния в сигнальное, а уведомляющий поток исполнения изменяет состояние этого события.
Сведения о функциях API приведены в таблице ниже.
Использование API
Типовой сценарий использования API включает следующие шаги:
- Инициализация события вызовом функции
KosEventInit(). - Использование события потоками исполнения:
- Ожидание перехода события из несигнального состояния в сигнальное вызовом функции
KosEventWait()илиKosEventWaitTimeout()(на стороне уведомляемых потоков исполнения). - Изменение состояния события вызовами функций
KosEventSet()иKosEventReset()(на стороне уведомляющих потоков исполнения).
- Ожидание перехода события из несигнального состояния в сигнальное вызовом функции
Сведения о функциях API
Функции event.h
Функция | Сведения о функции |
|---|---|
| Назначение Инициализирует событие. После инициализации событие находится в несигнальном состоянии. Параметры
Возвращаемые значения Нет. |
| Назначение Устанавливает событие в сигнальное состояние. Параметры
Возвращаемые значения Нет. |
| Назначение Устанавливает событие в несигнальное состояние. Параметры
Возвращаемые значения Нет. |
| Назначение Ожидает перехода события из несигнального состояния в сигнальное сколь угодно долго. Параметры
Возвращаемые значения Нет. |
| Назначение Ожидает перехода события из несигнального состояния в сигнальное не дольше заданного времени. Параметры
Возвращаемые значения В случае успеха возвращает Если время ожидания истекло, возвращает Дополнительные сведения Неблокирующий вызов, если в параметре |