iofunc_unblock_default()

Обработчик разблокировки по умолчанию

Прототип:

#include <sys/iofunc.h>
int iofunc_unblock_default( resmgr_context_t *ctp,
io_pulse_t *msg,
iofunc_ocb_t *ocb );

Аргументы:

ctp
Указатель на структуру resmgr_context_t, которую библиотека менеджера ресурсов использует для передачи контекстной информации между функциями.
msg
Указатель на структуру io_pulse_t, содержащую пульс, полученный менеджером ресурсов.
ocb
Указатель на структуру блока управления открытым контекстом (OCB, Open Control Block) iofunc_ocb_t, созданную при открытии ресурса клиентом.

Библиотека:

libc

Описание:

Функция iofunc_unblock_default() вызывает iofunc_unblock().

iofunc_unblock_default() реализует функционал, необходимый для выполнения запросов от клиента на разблокировку (например, сигнал или тайм-аут).

Эту функцию можно поместить на место unblock в таблицу io_funcs, передаваемую в resmgr_attach(). Или вызвать iofunc_func_init() , чтобы инициализировать все функции значениями по умолчанию.

Сообщение о разблокировке синтезируется разделяемой библиотекой менеджера ресурсов, когда клиент хочет разблокировать свой вызов MsgSendv() к менеджеру ресурсов. Функция iofunc_unblock_default() снимает любые блокировки ресурса, размещённые клиентом.

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

_RESMGR_DEFAULT
Клиентское соединение не найдено.
_RESMGR_NOREPLY
Клиентское соединение разблокировано.

Примеры:

Если вызывается iofunc_lock_default(), обработчик разблокировки должен вызывать iofunc_unblock_default():

if ( (status = iofunc_unblock_default( ... )) != _RESMGR_DEFAULT )
{
return (status);
}
/* Выполните необходимые действия для поиска клиента и разблокировки */

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

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

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

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

iofunc_func_init(), iofunc_lock_default(), iofunc_ocb_t, resmgr_attach(), resmgr_context_t, resmgr_io_funcs_t




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