Epoll
От: maks1180  
Дата: 25.10.22 17:07
Оценка:
В Линуксе, через Epoll обрабатываю сразу много TCP сокетов. На сокеты подписываюсь так: epoll_ctl(,,EPOLLIN | EPOLLOUT | EPOLLRDHUP | EPOLLET).
Всё отлично, но иногда приходят сообщения с такими флагами:
0C=EPOLLOUT+EPOLLERR или
1C=0С+EPOLLHUP или
1D=1С+EPOLLIN
Самое главное я не смог потворить такие ситуации.
Я не знаю, что они означают и как их обрабатывать в таких сочетаниях, т.е. когда одновременно EPOLLOUT+EPOLLERR, т.е. и ошибка и в сокет можно писать.
Я закрывают сокет в таких ситуациях, но сомневаюсь что правильно делаю.
===============================================
(реклама, удалена модератором)
Отредактировано 25.10.2022 17:23 maks1180 . Предыдущая версия .
Re: Epoll
От: Pzz Россия https://github.com/alexpevzner
Дата: 25.10.22 17:59
Оценка:
Здравствуйте, maks1180, Вы писали:

M>Я не знаю, что они означают и как их обрабатывать в таких сочетаниях, т.е. когда одновременно EPOLLOUT+EPOLLERR, т.е. и ошибка и в сокет можно писать.


Я б никак специально не обрабатывал EPOLLERR. Делал бы, что мне нужно (read/write), и пусть они уже приносят мне ошибку.
Re: Epoll
От: σ  
Дата: 25.10.22 20:25
Оценка: 2 (1)
M>Я не знаю, что они означают и как их обрабатывать в таких сочетаниях, т.е. когда одновременно EPOLLOUT+EPOLLERR, т.е. и ошибка и в сокет можно писать.

Т.е. https://github.com/tokio-rs/mio/pull/1091#issuecomment-535598561 не помогло?
Re[2]: Epoll
От: maks1180  
Дата: 26.10.22 08:11
Оценка:
σ>Т.е. https://github.com/tokio-rs/mio/pull/1091#issuecomment-535598561 не помогло?

Спасибо! Не понятно как повторить это, а так же как быть с EPOLLERR, что оно значит ?
===============================================
(реклама, удалена модератором)
Re[3]: Epoll
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 26.10.22 15:21
Оценка:
Здравствуйте, maks1180, Вы писали:


M>Спасибо! Не понятно как повторить это, а так же как быть с EPOLLERR, что оно значит ?


Расшифровка в `man poll` (не epoll!)
The God is real, unless declared integer.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.