Я прочитал много открытых исходных кодов, таких как 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]);
}