Asynchronous events are reported to users through event channels.
Event channels are used to direct all events on an rdma_cm_id. For many
clients, a single event channel may be sufficient, however, when managing
a large number of connections or cm_id's, users may find it useful to direct
events for different cm_id's to different channels for processing.
All created event channels must be destroyed by calling
rdma_destroy_event_channel. Users should call rdma_get_cm_event to
retrieve events on an event channel.
Each event channel is mapped to a file descriptor. The associated file
descriptor can be used and manipulated like any other fd to change its
behavior. Users may make the fd non-blocking, poll or select the fd, etc.