diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2013-10-26 07:16:29 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@gmail.com> | 2013-10-26 07:16:29 (GMT) |
commit | 2ff68dd526c5e9bf5ace14299c90ecfd4c762333 (patch) | |
tree | df77df85adf1de6852992a36969e534f401acda7 | |
parent | 3d2f68d242aa3e70129f3927a011251decdb94ba (diff) | |
download | cpython-2ff68dd526c5e9bf5ace14299c90ecfd4c762333.zip cpython-2ff68dd526c5e9bf5ace14299c90ecfd4c762333.tar.gz cpython-2ff68dd526c5e9bf5ace14299c90ecfd4c762333.tar.bz2 |
Close #19339: telnetlib module is now using time.monotonic() when available to
compute timeout.
-rw-r--r-- | Lib/telnetlib.py | 28 | ||||
-rw-r--r-- | Misc/NEWS | 3 |
2 files changed, 17 insertions, 14 deletions
diff --git a/Lib/telnetlib.py b/Lib/telnetlib.py index a59693e..14ca1b1 100644 --- a/Lib/telnetlib.py +++ b/Lib/telnetlib.py @@ -38,6 +38,10 @@ import errno import sys import socket import select +try: + from time import monotonic as _time +except ImportError: + from time import time as _time __all__ = ["Telnet"] @@ -302,8 +306,7 @@ class Telnet: n = len(match) call_timeout = timeout if timeout is not None: - from time import time - time_start = time() + time_start = _time() self.process_rawq() i = self.cookedq.find(match) if i < 0: @@ -316,7 +319,7 @@ class Telnet: except select.error as e: if e.errno == errno.EINTR: if timeout is not None: - elapsed = time() - time_start + elapsed = _time() - time_start call_timeout = timeout-elapsed continue raise @@ -327,7 +330,7 @@ class Telnet: self.process_rawq() i = self.cookedq.find(match, i) if timeout is not None: - elapsed = time() - time_start + elapsed = _time() - time_start if elapsed >= timeout: break call_timeout = timeout-elapsed @@ -356,8 +359,7 @@ class Telnet: s_args = s_reply if timeout is not None: s_args = s_args + (timeout,) - from time import time - time_start = time() + time_start = _time() while not self.eof and select.select(*s_args) == s_reply: i = max(0, len(self.cookedq)-n) self.fill_rawq() @@ -369,7 +371,7 @@ class Telnet: self.cookedq = self.cookedq[i:] return buf if timeout is not None: - elapsed = time() - time_start + elapsed = _time() - time_start if elapsed >= timeout: break s_args = s_reply + (timeout-elapsed,) @@ -665,8 +667,7 @@ class Telnet: expect_list[i] = re.compile(expect_list[i]) call_timeout = timeout if timeout is not None: - from time import time - time_start = time() + time_start = _time() self.process_rawq() m = None for i in indices: @@ -686,7 +687,7 @@ class Telnet: except select.error as e: if e.errno == errno.EINTR: if timeout is not None: - elapsed = time() - time_start + elapsed = _time() - time_start call_timeout = timeout-elapsed continue raise @@ -702,7 +703,7 @@ class Telnet: self.cookedq = self.cookedq[e:] break if timeout is not None: - elapsed = time() - time_start + elapsed = _time() - time_start if elapsed >= timeout: break call_timeout = timeout-elapsed @@ -727,8 +728,7 @@ class Telnet: if not re: import re list[i] = re.compile(list[i]) if timeout is not None: - from time import time - time_start = time() + time_start = _time() while 1: self.process_rawq() for i in indices: @@ -741,7 +741,7 @@ class Telnet: if self.eof: break if timeout is not None: - elapsed = time() - time_start + elapsed = _time() - time_start if elapsed >= timeout: break s_args = ([self.fileno()], [], [], timeout-elapsed) @@ -81,6 +81,9 @@ Core and Builtins Library ------- +- Issue #19339: telnetlib module is now using time.monotonic() when available + to compute timeout. + - Issue #19288: Fixed the "in" operator of dbm.gnu databases for string argument. Original patch by Arfrever Frehtes Taifersar Arahesis. |