code: def result(self, timeout=None):
          
          if self._state == self.RUNNING:
              self._context.wait_all_futures([self], timeout)
          return self.__get_result()
docs: Return the result of the call that the future represents.
  
          Args:
              timeout: The number of seconds to wait for the result if the future
                  isn't done. If None, then there is no limit on the wait time.
  
          Returns:
              The result of the call that the future represents.
  
          Raises:
              TimeoutError: If the future didn't finish executing before the given
                  timeout.
              exceptions.Exception: If the call raised then that exception will be
                  raised.