Клиентские связи с epoll - PullRequest
1 голос
/ 10 мая 2010

Я программирую приложение (клиент / сервер) на C ++ для Linux, используя epoll y pthreads, но я не знаю, как обрабатывать вызовы connect() для присоединения нового соединения в списке дескрипторов, если цикл с epoll_wait() запущен (запущен с помощью Edge), как я могу это сделать? ... Я мог бы использовать фиктивный дескриптор файла, чтобы вызвать событие и время ожидания?, Или простой вызов connect() может вызвать событие ?? ...

Извините за мой плохой английский ...

1 Ответ

1 голос
/ 11 мая 2010

Да, вы можете использовать другой файловый дескриптор, который предназначен только для пробуждения цикла epoll_wait(). Используйте pipe() для создания дескриптора файла. Добавьте конец чтения канала в свой список epoll и запишите один байт в конец записи, когда вы хотите его разбудить. Читающая сторона может просто прочитать этот байт и выбросить его.

...