'Poll the registered 0MQ or native fds for I/O.
Parameters
timeout : float, int
The timeout in milliseconds. If None, no `timeout` (infinite). This
is in milliseconds to be compatible with ``select.poll()``.
Returns
events : list of tuples
The list of events that are ready to be processed.
This is a list of tuples of the form ``(socket, event)``, where the 0MQ Socket
or integer fd is the first element, and the poll event mask (POLLIN, POLLOUT) is the second.
It is common to call ``events = dict(poller.poll())``,
which turns the list of tuples into a mapping of ``socket : event``.'

def poll(self, timeout=None):

    if ((timeout is None) or (timeout < 0)):
        timeout = (-1)
    elif isinstance(timeout, float):
        timeout = int(timeout)
    return zmq_poll(self.sockets, timeout=timeout)
