epoll 文件事件管理逻辑(非阻塞)
2021-06-20 13:10:53 0 举报
流程图主要介绍非阻塞 tcp 服务使用 epoll 的工作流程。
作者其他创作
大纲/内容
Y
EPOLL_CTL_ADDEPOLLIN
wenfh2020.com
fcntl
EPOLL_CTL_DEL
end
ret < 0 && errno == EAGAIN
server_fd == events[i].data.fd
EPOLLOUT
events
server_fd
listen
O_NONBLOCK
accept
ret > 0
client_fd
Linux 5.0.1
block
epoll_wait
EPOLL_CTL_MOD/EPOLL_CTL_DEL~EPOLLOUT
ret = write
epoll_ctl
epoll_fd
N
bind
ret == 0 || (ret == -1 && errno != EAGAIN)
ret < 0 && (errno != EAGAIN && errno != EINTR)
epoll_create
close
EPOLLIN
start
ret = read
ip:port
epoll_event
+ events : __poll_t+ data : __u64
epoll 文件事件管理逻辑(非阻塞)
socket
EPOLL_CTL_ADD/EPOLL_CTL_MODEPOLLOUT
0 条评论
下一页