Тонкость с epoll: добавили fd, получили event, обработали — а событий больше нет, хотя данные приходят. Почему?
Опрос
- epoll забыл fd после первого срабатывания
- Нужно вызывать epoll_ctl(MOD) после каждого read()
- Сокет в edge-triggered режиме — нужно читать до EAGAIN, иначе событие не повторится
- Level-triggered режим не работает с неблокирующими сокетами