github.com/angenalZZZ/gofunc@v0.0.0-20210507121333-48ff1be3917b/net/internal/netpoll/epoll_events.go (about) 1 // +build linux 2 3 package netpoll 4 5 import "golang.org/x/sys/unix" 6 7 const ( 8 // InitEvents represents the initial length of poller event-list. 9 InitEvents = 128 10 // ErrEvents represents exceptional events that are not read/write, like socket being closed, 11 // reading/writing from/to a closed socket, etc. 12 ErrEvents = unix.EPOLLERR | unix.EPOLLHUP | unix.EPOLLRDHUP 13 // OutEvents combines EPOLLOUT event and some exceptional events. 14 OutEvents = ErrEvents | unix.EPOLLOUT 15 // InEvents combines EPOLLIN/EPOLLPRI events and some exceptional events. 16 InEvents = ErrEvents | unix.EPOLLIN | unix.EPOLLPRI 17 ) 18 19 type eventList struct { 20 size int 21 events []unix.EpollEvent 22 } 23 24 func newEventList(size int) *eventList { 25 return &eventList{size, make([]unix.EpollEvent, size)} 26 } 27 28 func (el *eventList) increase() { 29 el.size <<= 1 30 el.events = make([]unix.EpollEvent, el.size) 31 }