Составители:
52
Сервер никогда не изменяет и даже не читает содержимое структуры
sigevent. Уведомление о событии формирует ядро, анализируя аргумент
event в вызове MsgDeliverEvent(). Это позволяет серверу доставлять собы-
тия вне зависимости от выбранного клиентом типа. Тип события указывает-
ся в поле event.sigev_notify структуры sigevent. Прочие поля структуры под-
чинены типу события, все возможные варианты заполнения полей структу-
ры sigevent представлены в табл. 3.10.
Таблица 3.10
sigev_notify sigev_signo sigev_coid sigev_priority sigev_code sigev_value
SIGEV_INTR – – – – –
SIGEV_NONE – – – – –
SIGEV_PULSE – Connection Priority Code Value
SIGEV_SIGNAL Signal – – – –
SIGEV_SIGNAL_CODE Signal – – Code Value
SIGEV_SIGNAL_THREAD Signal – – Code Value
SIGEV_THREAD
– –
– – Value
SIGEV_UNBLOCK
– – – – –
Пустые позиции указывают, что соответствующие поля структуры не
используются для данного типа уведомления. Символические обозначения
типа события расшифровываются следующим образом:
• SIGEV_INTR – уведомить прерыванием (предназначено для обра-
ботчиков прерываний и не используется для вызова MsgDeliverEvent());
• SIGEV_NONE – не посылать уведомления (возможно, клиенту оно
не требуется!);
• SIGEV_PULSE – уведомить импульсом с кодом Code и значением
Value. Импульс посылается клиенту по соединению Connection с приорите-
том Priority;
• SIGEV_SIGNAL – уведомить сигналом с номером Signal;
• SIGEV_SIGNAL_CODE – уведомить сигналом реального времени с
номером Signal, кодом Code и значением Value;
• SIGEV_SIGNAL_THREAD – послать сигнал реального времени к
специфицированному потоку;
• SIGEV_THREAD – создать новый поток и передать ему параметр
Value;
• SIGEV_UNBLOCK – деблокировать поток (используется для форми-
рования реакции на тайм-ауты ядра).
Страницы
- « первая
- ‹ предыдущая
- …
- 50
- 51
- 52
- 53
- 54
- …
- следующая ›
- последняя »