linux epoll EPOLL_CTL_DEL
От: Аноним  
Дата: 20.11.12 07:53
Оценка:
здравствуйте
в свое клиент-серверном приложении при обнаружении ошибки чтения-записи я закрываю сокет, а потом вызываю
epoll_ctl(epoll, EPOLL_CTL_DEL, socket, NULL);

вот описание функции:
http://www.kernel.org/doc/man-pages/online/pages/man2/epoll_ctl.2.html

после вызова errno имеет значение
EBADF epfd or fd is not a valid file descriptor.

насколько это критично? имеет ли смысл вызов epoll_ctl после закрытия сокета? или надо сначала вызвать epoll_ctl, а потом только закрывать сокет?
Re: linux epoll EPOLL_CTL_DEL
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 20.11.12 08:02
Оценка:
Здравствуйте, Аноним, Вы писали:

А>здравствуйте

А>в свое клиент-серверном приложении при обнаружении ошибки чтения-записи я закрываю сокет, а потом вызываю
А>
А>epoll_ctl(epoll, EPOLL_CTL_DEL, socket, NULL);
А>

А>вот описание функции:
А>http://www.kernel.org/doc/man-pages/online/pages/man2/epoll_ctl.2.html

А>после вызова errno имеет значение

А>EBADF epfd or fd is not a valid file descriptor.

Всё правильно. Вы его закрыли — он автоматически вынесся из списков epoll.

Вот в SysV /dev/poll надо было выносить явно. Но это уже сколько лет назад было.

А>насколько это критично? имеет ли смысл вызов epoll_ctl после закрытия сокета?


Нет.

А> или надо сначала вызвать epoll_ctl, а потом только закрывать сокет?


Без разницы.
The God is real, unless declared integer.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.