ham_stop(), ham_stop_nd(), ham_stop_node()

Остановить HAM

Прототип:

#include <ha/ham.h>
int ham_stop( void );
int ham_stop_nd( int nd );
int ham_stop_node( const char *nodename );

Аргументы:

nd
Идентификатор целевого удаленного узла. По умолчанию используется значение 0 или ND_LOCAL_NODE — для локального узла.
nodename
Целевой удаленный HAM. Если указано NULL, параметр будет проигнорирован.

Библиотека:

libham

Описание:

Функция ham_stop() сообщает HAM о прекращении работы. Функции ham_stop_nd() и ham_stop_node() используются для завершения удаленного . Это единственно верные способы остановить HAM.

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


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

Функция ham_stop_node() принимает в качестве параметра полное имя узла (FQNN). Функция ham_stop_node() используется, когда имя узла nodename используется для указания удаленного HAM вместо идентификатора узла (nd).

Поскольку HAM и его «клон» Дублёр (Guardian) наблюдают друг за другом и возрождаются в случае сбоя другого, HAM должен сначала завершить работу Дублёра (Guardian), прежде чем он завершит свою работу.

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

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

Коды ошибок:

EBADF
Не удалось подключиться к HAM.

В дополнение к вышеуказанным ошибкам HAM возвращает любую ошибку, с которой он сталкивается при обслуживании запроса на останов.

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

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

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




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