def METHOD_NAME(self, timeout=None):
    """Blocks until the request completes, and returns self.request."""
    if self._worker_thread.is_alive():
        log.info("Waiting for response to {0} ...", self)
        self._worker_thread.join(timeout)
    if self.exception is not None:
        raise self.exception
    return self.request