ham_disconnect(), ham_disconnect_nd(), ham_disconnect_node()

Отключиться от HAM

Прототип:

#include <ha/ham.h>
int ham_disconnect( unsigned flags );
int ham_disconnect_nd( int nd,
unsigned flags );
int ham_disconnect_node( const char *nodename,
unsigned flags );

Аргументы:

nd
Идентификатор целевого удаленного узла.
nodename
Целевой удаленный HAM.
flags
Флаги в настоящий момент не поддерживаются.

Библиотека:

libham

Описание:

Функция ham_disconnect() закрывает ранее открытое соединение с HAM. Функции ham_disconnect_nd() и ham_disconnect_node() закрывают ранее открытые соединения с удаленным HAM.

nd, указанный в ham_disconnect_nd(), является идентификатором удаленного узла.


Note: Поскольку идентификаторы узлов являются временными объектами, необходимо получить значение для nd непосредственно перед вызовом, используя netmgr_strtond() или другую функцию, которая преобразует nodename в идентификаторы узлов.

Функция ham_disconnect_node() принимает в качестве параметра полное имя узла (FQNN).

Поскольку библиотека поддерживает счетчик ссылок, фактическое соединение с HAM закрывается только тогда, когда количество вызовов ham_disconnect() совпадёт с количеством вызовов ham_connect().

Когда процесс вызывает ham_connect(), а затем вызывает fork(), соединение в дочернем процессе становится недействительным. Для повторного подключения к HAM дочерний процесс должен вызвать:

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

0
Успешное завершение.
-1
Возникла ошибка. Код ошибки записан в errno.

Коды ошибок:

EINVAL
Отсутствует действительное подключение к HAM для его отключения.

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

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

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

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

ham_attach_self(), ham_connect(), ham_connect_nd(), ham_connect_node(), ham_stop(), fork()




Предыдущий раздел: Менеджер высокой готовности (HAM)