Epoll实现

计算机网络

C++ & Epoll #

代码可见这里

也没啥高级就是:

  1. create_socket
  2. epoll_create1
  3. epoll_ctl(1. & 2.)
  4. struct epoll_event events[MAX_EPOLL_EVENTS] = {0};
  5. while1: epoll_wait(2, & 4.)
    • eventfd == sockfd accept
    • else => connfd read

所以就是:

  1. epoll_event -> 内核空间
  2. epitem -> 红黑
  3. 设备事件就绪 - callback (epitem -> rdlist链表)
  4. emmmm…有需要再继续整理吧

select-poll区别为: 一个遍历, 一个触发式的.