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. Дескриптор двери может быть отменен только процессом, создавшим эту дверь. Все вызовы через эту дверь, находящиеся в процессе выполнения в момент вызова этой функции, будут благополучно завершены.