'Returns the result when it arrives. If timeout is not None and
the result does not arrive within timeout seconds then
TimeoutError is raised. If the remote call raised an exception
then that exception will be reraised by get().'

def get(self, timeout=None):

    if (not self.wait(timeout)):
        raise TimeoutError(('Result    not    available    within    %fs' % timeout))
    if self._success:
        return self._data
    raise self._data[0], self._data[1], self._data[2]
