code: def get(self, timeout=None):
          # type: (float) -> T
          
          self.wait(timeout)
          if isinstance(self._result, Exception):
              raise self._result
          return self._result
docs: Return the result or raise the error the function has produced