Обработать сообщения менеджера ресурсов
#include <sys/iofunc.h>#include <sys/dispatch.h>int resmgr_handler( resmgr_context_t *ctp );
libc
Функция resmgr_handler() обрабатывает сообщение, полученное в ctp. Данная функция обрабатывает различные сообщения ввода/вывода через фреймворк менеджера ресурсов.
![]() | Функция resmgr_handler() является частным случаем dispatch_handler(). Следует использовать ее только при написании простейшего менеджера ресурсов, т.е. такого, где нет необходимости в добавлении импульсов или сообщений. |
#include <sys/dispatch.h>#include <stdio.h>#include <stdlib.h>int main( int argc, char **argv ){dispatch_t *dpp;resmgr_context_t *ctp;if ( (dpp = dispatch_create()) == NULL ){fprintf( stderr, "%s: Unable to allocate dispatch handle.\n", argv[0] );return (EXIT_FAILURE);}...ctp = resmgr_context_alloc( dpp );while ( 1 ){if ( ( ctp = resmgr_block( ctp )) == NULL ){fprintf( stderr, "block error\n" );return (EXIT_FAILURE);}resmgr_handler( ctp );}}
Другие примеры, использующие интерфейс диспетчера см. на страницах dispatch_create(), message_attach(), resmgr_attach(), и thread_pool_create().
ЗОСРВ «Нейтрино»
При добавлении сообщений или импульсов к dpp путем вызова message_attach(), pulse_attach(), или select_attach(), эти события не обрабатываются функцией resmgr_handler(). Вместо этого следует использовать dispatch_handler().
dispatch_handler(), resmgr_attach(), resmgr_block(), resmgr_context_t
Предыдущий раздел: Описание API системной библиотеки