задумал я переписать одну подсистему с 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)