golang-epoll模型源码解析
epoll
epoll is an io multipexing model
in linux env.
epoll
generate epoll table
.
A new socket will be put into epoll table
after bind and listen operation. Then we will get ready events
with wait func
When epoll_wait()
returns ready events
,we need determine whether it's a new connection at first.
If new, fdDesc will be added to epoll table
for listen events.
Else it means there have read or wirte events for established connection, we need call epollout
or epollin
fdDesc
file Description
src/internal/poll/fd_uni.go
type FD struct{
fdmu fdMutex // lock sysfd and serialize access to read and write methods
sysfd int // system file name, immutable until close
pd pollDesc // I/O poller
***
isFile /// whether this is a file rather tan a network socket
}
now show struct pollDesc
待完善
标签:md,epoll,源码,new,go,table,events
From: https://www.cnblogs.com/erfeng/p/17730929.html