'Waits for the wrapped :data:`func` to finish and returns its result.
.. note::
This will block the **calling thread** until the :data:`func`
returns.
:param timeout:
:class:`float` or ``None`` A timeout for the :data:`func` to
return in seconds.
:returns:
The result of the wrapped :data:`func`.'

def get_result(self, timeout=None):

    self.join(timeout)
    return self._result
