'Return the next result value in the sequence. Raise
StopIteration at the end. Can raise the exception raised by
the Job'

def next(self, timeout=None):

    try:
        apply_result = self._collector._get_result(self._idx, timeout)
    except IndexError:
        self._idx = 0
        raise StopIteration
    except:
        self._idx = 0
        raise
    self._idx += 1
    assert apply_result.ready()
    return apply_result.get(0)
