статья про epoll
От: maks1180  
Дата: 12.06.24 00:47
Оценка:
Прочитал полезную статью про epoll, но что-то не совсем понятно, кажется что перевод был машинный и с ошибками.
https://habr.com/ru/companies/ruvds/articles/523946/ часть 1
https://habr.com/ru/companies/ruvds/articles/526582/ часть 2
https://habr.com/ru/companies/ruvds/articles/526802/ часть 3
https://habr.com/ru/companies/ruvds/articles/527174/ часть 4

Вот что я понял из статьи:

1) epoll_ctl() региструрует callback функцию которая собирает event от файлового дескриптора, который передали.
2) при вызове epoll_wait(), обрабатывает все event которые были получены через callback функцию, составляет ready list список.
Вызывает vfs_poll() для каждого файла из ready list, что-бы проверить действительно ли он имеет available for read или available for write ?
если имеет, то отдаёт пользователю.
3) если не установлен EPOLLET, то добавляем в ready list, для следующего вызова epoll_wait().

Или по другому, но тот же смысл:
1) при EPOLLET проверяет файл при добавлении или если были события по нему с момента последнего вызова epoll_wait
2) при !EPOLLET проверяет файл, как при п.1 плюс еще если в прошлый вызов epoll_wait файл попал в ready list

Вот это интересно, получается с EPOLLET будет быстрее работать ?

Что делает vfs_poll ? Где можно информацию почитать, кроме исходников ?

Какие события для TCP сокетов, передаются через callback функцию ?
===============================================
(реклама, удалена модератором)
Отредактировано 12.06.2024 1:25 maks1180 . Предыдущая версия . Еще …
Отредактировано 12.06.2024 0:48 maks1180 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.