From: JensDiemer Date: Mon, 15 Aug 2011 15:03:37 +0000 (+0200) Subject: use settings.timeout_fallback bool for socket.setdefaulttimeout() fallback X-Git-Tag: v0.6.0~54 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=88f79b74ce70815b343f5eeff871f0ee9e8cec67;p=services%2Fpython-requests.git use settings.timeout_fallback bool for socket.setdefaulttimeout() fallback --- diff --git a/requests/config.py b/requests/config.py index 1ba438f..89e40c9 100644 --- a/requests/config.py +++ b/requests/config.py @@ -57,3 +57,4 @@ settings = Settings() settings.base_headers = {'User-Agent': 'python-requests.org'} settings.accept_gzip = True settings.proxies = None +settings.timeout_fallback = True # Use socket.setdefaulttimeout() as fallback? diff --git a/requests/models.py b/requests/models.py index 5f77869..845a778 100644 --- a/requests/models.py +++ b/requests/models.py @@ -38,7 +38,7 @@ class Request(object): params=dict(), auth=None, cookiejar=None, timeout=None, redirect=False, allow_redirects=False, proxies=None): - #socket.setdefaulttimeout(timeout) + #: Float describ the timeout of the request. (Use socket.setdefaulttimeout() as fallback) self.timeout = timeout #: Request URL. @@ -313,11 +313,17 @@ class Request(object): # timeout argument is new since Python v2.6 if not "timeout" in str(err): raise - # set global socket timeout - old_timeout = socket.getdefaulttimeout() - socket.setdefaulttimeout(self.timeout) + + if settings.timeout_fallback: + # fall-back and use global socket timeout (This is not thread-safe!) + old_timeout = socket.getdefaulttimeout() + socket.setdefaulttimeout(self.timeout) + resp = opener(req) - socket.setdefaulttimeout(old_timeout) + + if settings.timeout_fallback: + # restore gobal timeout + socket.setdefaulttimeout(old_timeout) if self.cookiejar is not None: self.cookiejar.extract_cookies(resp, req)