github.com/angenalZZZ/gofunc@v0.0.0-20210507121333-48ff1be3917b/net/internal/netpoll/kqueue_events.go (about) 1 // +build darwin netbsd freebsd openbsd dragonfly 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 = 64 10 // EVFilterWrite represents writeable events from sockets. 11 EVFilterWrite = unix.EVFILT_WRITE 12 // EVFilterRead represents readable events from sockets. 13 EVFilterRead = unix.EVFILT_READ 14 // EVFilterSock represents exceptional events that are not read/write, like socket being closed, 15 // reading/writing from/to a closed socket, etc. 16 EVFilterSock = -0xd 17 ) 18 19 type eventList struct { 20 size int 21 events []unix.Kevent_t 22 } 23 24 func newEventList(size int) *eventList { 25 return &eventList{size, make([]unix.Kevent_t, size)} 26 } 27 28 func (el *eventList) increase() { 29 el.size <<= 1 30 el.events = make([]unix.Kevent_t, el.size) 31 }