задумал я переписать одну подсистему с select на epoll
с целью увеличения производительности
возник такой вопрос что возвращает epoll_wait и как это использовать ?
по ману он возвращает количество дескрипторов требующих обработки
int epoll_wait(int epfd, struct epoll_event * events,
int maxevents, int timeout);
но тут для меня ряд непоняток
struct epoll_event * events,
сюда мы передаем как я понимаю массив чистых структур
и epoll_wait заполняет их данными по активным дескрипторам или как ?
а также, если у меня например есть некий объект
связанный с дескриптором есть ли какой-то способ
к примеру в структуру struct epoll_event
запихнуть на него указатель, передать в ядро через epoll_ctl
и чтобы потом epoll_wait возвращал мне дескриптор + где-то
этот мой указатель ?
иначе, если это не возможно
получаеться все равно мутная схема,
получил дескриптор и события через epoll_wait
по дескриптору нашел соответствующий объект,
обработал события......
и в общем-то каждый раз искать объект это
совсем нерационально, я понимаю что можно
сделать быстрые схемы типа хэша или массива
с индексом по дескриптору но это все равно костыли :)
Ответ на:
комментарий
от erDiZz
Ответ на:
комментарий
от anonymous
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум возможно, глупый вопрос про epoll (2017)
- Форум level-triggered: продолжают приходить EPOLLIN после recv_bytes == 0 (EOF) (2012)
- Форум GPIO epoll на Allwinner A20 (cubieboard 2) с mainline kernel (2015)
- Форум парочка вопросов по сети и epoll (2010)
- Форум c,stdout,начинающий (2016)
- Форум Разбудить epoll_wait() раньше времени. (2016)
- Форум accept(), получение адреса (2012)
- Форум Проектирование Qt-приложения. Связь QListWidget и QVector (2014)
- Форум Вызов Python функций из C++. boost::python, Pyhton C-API. (2017)
- Форум передача списка процессов сервера клиенту (2015)