What the poll backends remember per descriptor.
Fields
- read_head: *Op
- read_tail: *Op
- write_head: *Op
- write_tail: *Op
- read_armed: bool
- kqueue: a filter is registered and has not fired.
- write_armed: bool
- registered: bool
- epoll: registered at all (edge-triggered, for good), and the events it asks for.
- mask: u32
- read_blocked: bool
- epoll: the last try in that direction found nothing to do, and no event has said otherwise since, so the next operation waits without trying.
- write_blocked: bool
- hup: bool
- The peer has shut down or the socket has an error: receives always try, since the end of the stream is not an edge that comes again.