Уничтожить канал связи
#include <sys/neutrino.h>int ChannelDestroy( int chid );int ChannelDestroy_r( int chid );
libc
Данные вызовы ядра уничтожают канал, определяемый идентификатором, передаваемым в аргумент chid. Если канал разрушен, любые попытки получить сообщение или импульс из канала завершается ошибкой. Любой поток, заблокированный на канале во время вызова MsgReceivev() или MsgSendv(), разблокируется и завершится с ошибкой.
Функции ChannelDestroy() и ChannelDestroy_r() идентичны за исключением способа оповещения об ошибках.
Когда канал разрушается, все идентификаторы соединений сервера становятся недействительными. Соединения клиентов помечаются как некорректные, но продолжают существовать до тех пор, пока клиент не удалит их, вызвав ConnectDetach(). Попытка клиента использовать одно из некорректных соединений с помощью MsgSendv() или MsgSendPulse() завершится с ошибкой.
Сервер обычно разрушает свои каналы перед тем, как завершает работу. Если это не удается, ядро разрушает их автоматически, когда процесс завершается.
Данные вызовы не блокируются.
-1
, код ошибки записывается в errno. Любое другое возвращенное значение считается успешным завершением.EOK
возвращается при успешном завершении. Функция НЕ устанавливает errno. При возникновении ошибки функция возвращает один из представленных ниже кодов.
ЗОСРВ «Нейтрино»
ChannelCreate(), MsgReceivev()
Предыдущий раздел: Описание API системной библиотеки