(Merge 3.3) Close #19339: telnetlib module is now using time.monotonic() when
available to compute timeout.
diff --git a/Lib/telnetlib.py b/Lib/telnetlib.py
index fa23be0..0cacac8 100644
--- a/Lib/telnetlib.py
+++ b/Lib/telnetlib.py
@@ -36,6 +36,10 @@
import sys
import socket
import selectors
+try:
+ from time import monotonic as _time
+except ImportError:
+ from time import time as _time
__all__ = ["Telnet"]
@@ -304,8 +308,7 @@
self.cookedq = self.cookedq[i:]
return buf
if timeout is not None:
- from time import time
- deadline = time() + timeout
+ deadline = _time() + timeout
with _TelnetSelector() as selector:
selector.register(self, selectors.EVENT_READ)
while not self.eof:
@@ -320,7 +323,7 @@
self.cookedq = self.cookedq[i:]
return buf
if timeout is not None:
- timeout = deadline - time()
+ timeout = deadline - _time()
if timeout < 0:
break
return self.read_very_lazy()
@@ -610,8 +613,7 @@
if not re: import re
list[i] = re.compile(list[i])
if timeout is not None:
- from time import time
- deadline = time() + timeout
+ deadline = _time() + timeout
with _TelnetSelector() as selector:
selector.register(self, selectors.EVENT_READ)
while not self.eof:
@@ -625,7 +627,7 @@
return (i, m, text)
if timeout is not None:
ready = selector.select(timeout)
- timeout = deadline - time()
+ timeout = deadline - _time()
if not ready:
if timeout < 0:
break