kqueue 是 Unix 下的一个 IO 多路复用库,如下是 Go 语言中 kevent 的对象注释。kevent 可以往 kqueue 里添加事件,或者监听事件,kevent 是阻塞调用的。

1
2
3
4
5
6
7
8
9
// golang.org/x/sys/unix/ztypes_darwin_amd64.go:282
type Kevent_t struct {
	Ident  uint64  // 事件标识
	Filter int16   // 监听事件的类型
	Flags  uint16  // 事件操作类型
	Fflags uint32  // 特定 filter 的专有标志,可用于保存专有返回信息
	Data   int64   // 特定 filter 存储专有信息
	Udata  *byte   // 可携带的任意用户数据
}