provides a mechanism to execute a callback function when a specific event occurs on a file descriptor or after a timeout has been reached