на главную | войти | регистрация | DMCA | контакты | справка | donate |      

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Э Ю Я


моя полка | жанры | рекомендуем | рейтинг книг | рейтинг авторов | впечатления | новое | форум | сборники | читалки | авторам | добавить



15.10. Функции door_bind, door unbind и door_revoke

Рассмотрим еще три функции, дополняющие интерфейс дверей:

#include

int door_bind(int fd);

int door_unbind(void);

int door_revoke(int fd);

/* Всe три возвращают 0 в случае успешного завершения, –1 – в случае ошибки */

Функция door_bind впервые появилась в листинге 15.18. Она связывает вызвавший ее поток с частным пулом сервера, относящимся к двери с дескриптором fd. Если вызвавший поток уже подключен к какой-либо другой двери, производится его неявное отключение.

Функция door_unbind осуществляет явное отключение потока от текущего пула, к которому он подключен.

Функция door_revoke отключает доступ к двери с дескриптором fd. Дескриптор двери может быть отменен только процессом, создавшим эту дверь. Все вызовы через эту дверь, находящиеся в процессе выполнения в момент вызова этой функции, будут благополучно завершены.


Листинг 15.19. Процедура сервера | UNIX: взаимодействие процессов | 15.11. Досрочное завершение клиента или сервера