def wait_fd_read(fd, timeout=None):
    """Suspends handling of the current request until there is something
    to be read on file descriptor.

    May be called several times before yielding/suspending
    to add more file descriptors to the set to be watched.

    * http://uwsgi-docs.readthedocs.io/en/latest/Async.html#waiting-for-i-o

    :param int fd: File descriptor number.

    :param int timeout: Timeout. Default:  infinite.

    :rtype: bytes|str

    :raises IOError: If unable to read.
    """
