почему каждый обрабатывает событие epoll с порядком чтения, записи, ошибки? - PullRequest
0 голосов
/ 06 марта 2019

Я прочитал много открытых исходных кодов, таких как nginx, redis, uwsgi. Я нахожу почти каждый процесс epoll, когда epoll_wait возвращается с порядком чтения, записи и ошибкой, что произойдет, если я обработаю в любом порядке, например, writeчитать и ошибка?большинство процессов ниже, я пишу это в псевдокоде:

nfds = epoll_wait(epfd, interested_events, event_size, timeout);
if (nfds < 0) {
   handle_error()
}

for (i=0; i < nfds; ++i) {
    if (interested_events[i] & READ_EVENT) process_read(interested_events[i]);
    if (interested_events[i] & WRITE_EVENT) process_write(interested_events[i]);
    if (interested_events[i] & ERROR_EVENT) process_(interested_events[i]);
}
...