Отключиться от 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 );
libham
Функция ham_disconnect() закрывает ранее открытое соединение с HAM. Функции ham_disconnect_nd() и ham_disconnect_node() закрывают ранее открытые соединения с удаленным HAM.
nd, указанный в ham_disconnect_nd(), является идентификатором удаленного узла.
![]() | Поскольку идентификаторы узлов являются временными объектами, необходимо получить значение для nd непосредственно перед вызовом, используя netmgr_strtond() или другую функцию, которая преобразует nodename в идентификаторы узлов. |
Функция ham_disconnect_node() принимает в качестве параметра полное имя узла (FQNN).
Поскольку библиотека поддерживает счетчик ссылок, фактическое соединение с HAM закрывается только тогда, когда количество вызовов ham_disconnect() совпадёт с количеством вызовов ham_connect().
Когда процесс вызывает ham_connect(), а затем вызывает fork(), соединение в дочернем процессе становится недействительным. Для повторного подключения к HAM дочерний процесс должен вызвать:
ЗОСРВ «Нейтрино»
ham_attach_self(), ham_connect(), ham_connect_nd(), ham_connect_node(), ham_stop(), fork()
Предыдущий раздел: Менеджер высокой готовности (HAM)