def METHOD_NAME(self, timeout=None):
    with self._condition:
        if self._result is None:
            if not self._condition.wait(timeout):
                raise FutureTimeoutError('Future timed out')
    return self._result