ha_dup()

Дублировать HA соединение

Прототип:

#include <ha/unistd.h>
int ha_dup( int oldfd );

Аргументы:

oldfd
Файловый дескриптор, который необходимо продублировать.

Библиотека:

libha

Описание:

Функция ha_dup() дублирует HA-совместимый файловый дескриптор oldfd. Функционал ha_dup() аналогичен стандартному вызову dup(), за исключением того, что новый файловый дескриптор также использует механизмы восстановления, связанные с oldfd.

Изменение функции восстановления для одного файлового дескриптора также автоматически изменит функцию восстановления для другого.

Следует обратить внимание, что HA соединения также учитываются в вызовах ha_dup(). Это означает, что когда HA соединения, которые были дублированы функцией dup(), будут закрыты, функции восстановления будут продолжать существовать до тех пор, пока последняя ссылка на них не будет закрыта.

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

≠-1
Новый файловый дескриптор.
-1
Возникла ошибка. Код ошибки записан в errno.

Коды ошибок:

EBADF
Соединение oldfd не является HA-совместимым.
ENOMEM
Не удалось выделить память для дублирования соединения.

Кроме того, вызов ha_dup() возвращает все ошибки, возвращаемые вызываемой внутри функцией dup().

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

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

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

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

ha_attach(), ha_close(), ha_detach(), ha_open(), dup()




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