From: Vladlen Y. Koshelev Date: Tue, 19 Feb 2013 22:27:11 +0000 (+0400) Subject: Remove timeout callback on errors during connect or request. X-Git-Tag: v3.0.0~101^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f5c6a4d4df835070066ada68dd3e5e684f0e1e11;p=thirdparty%2Ftornado.git Remove timeout callback on errors during connect or request. --- diff --git a/tornado/simple_httpclient.py b/tornado/simple_httpclient.py index d659318da..f33ed242e 100644 --- a/tornado/simple_httpclient.py +++ b/tornado/simple_httpclient.py @@ -213,10 +213,13 @@ class _HTTPConnection(object): if self.final_callback is not None: raise HTTPError(599, "Timeout") - def _on_connect(self): + def _remove_timeout(self): if self._timeout is not None: self.io_loop.remove_timeout(self._timeout) self._timeout = None + + def _on_connect(self): + self._remove_timeout() if self.request.request_timeout: self._timeout = self.io_loop.add_timeout( self.start_time + self.request.request_timeout, @@ -290,6 +293,7 @@ class _HTTPConnection(object): def _handle_exception(self, typ, value, tb): if self.final_callback: + self._remove_timeout() gen_log.warning("uncaught exception", exc_info=(typ, value, tb)) self._run_callback(HTTPResponse(self.request, 599, error=value, request_time=self.io_loop.time() - self.start_time, @@ -377,9 +381,7 @@ class _HTTPConnection(object): self.stream.read_until_close(self._on_body) def _on_body(self, data): - if self._timeout is not None: - self.io_loop.remove_timeout(self._timeout) - self._timeout = None + self._remove_timeout() original_request = getattr(self.request, "original_request", self.request) if (self.request.follow_redirects and