'Get result, if available, then shut down thread.
Parameters
timeout : int or float
Wait the given amount of time in seconds before
obtaining result. If not given, wait indefinitely
until function is done.
Returns
result
Result returned by the function.
Raises
Exception
Errors raised by :py:class:`concurrent.futures.Future`.'

def get(self, timeout=None):

    try:
        result = self.future.result(timeout=timeout)
    except Exception as e:
        result = None
        raise e
    finally:
        self.executor.shutdown(wait=False)
        return result
