the transport layer within a host. It is also referred to as the Application Programming Interface (API) between the application and the network, since the socket is the programming interface with which network applications are built" — Kurose, Computer Networking A Top-Down Approach
that we want to be notified if one or more I/O conditions are ready (i.e., input is ready to be read, or the descriptor is capable of taking more output). This capability is called I/O multiplexing" — Stevens, Unix Networking Programming Volume 1
kernel to wait for any one of multiple events to occur and to wake up the process only when one or more of these events occurs or when a specified amount of time has passed." — Stevens, Unix Networking Programming Volume 1
if I/O is possible on any of them. The epoll API [...] scales well to large numbers of watched file descriptors." — man pages, Linux (http://man7.org/linux/man-pages/man7/epoll.7.html)
the select module primitives. Users are encouraged to use this module instead, unless they want precise control over the OS-level primitives used." — Docs, Python (https://docs.python.org/3/library/selectors.html)
control the iteration behaviour of a loop. However, instead of building an array containing all the values and returning them all at once, a generator yields the values one at a time, which requires less memory and allows the caller to get started processing the first few values immediately." — Wikipedia