dispatch_handler()

Обработать события, полученные dispatch_block()

Прототип:

#include <sys/iofunc.h>
#include <sys/dispatch.h>
int dispatch_handler( dispatch_context_t *ctp );

Аргументы:

ctp
Указатель на структуру dispatch_context_t, выделенную с помощью dispatch_context_alloc().

Библиотека:

libc

Описание:

Функция dispatch_handler() обрабатывает события, полученные dispatch_block(). Эта функция является частью уровня диспетчеризации менеджера ресурсов.

В зависимости от типа блокировки dispatch_handler() выполняет одно из следующих действий:

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

0
Успешное завершение.
-1
Произошло что-то одно из списка: В других случаях, если сообщение не является импульсом, клиенту будет отправлен соответствующее значение errno.

Примеры:

#include <stdlib.h>
#include <sys/dispatch.h>
int main( int argc, char **argv )
{
dispatch_context_t *ctp;
...
for ( ; ; )
{
if ( ctp = dispatch_block( ctp ) )
{
dispatch_handler( ctp );
}
}
return (EXIT_SUCCESS);
}

Для примера использования интерфейса диспетчеризации смотрите dispatch_create(), message_attach(), resmgr_attach() и thread_pool_create().

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

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

Точка остановки потока
Смотри ниже
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Да

Предостережения:

Данная функция может являться, а может и не являться точкой остановки потока в завизимости от реализации обработчика.

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

select_attach(), dispatch_block(), dispatch_create(), dispatch_create_channel(), dispatch_timeout()




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