Close #14690: Use monotonic clock instead of system clock in the sched,
subprocess and trace modules.
diff --git a/Lib/subprocess.py b/Lib/subprocess.py
index 553f160..7885ba3 100644
--- a/Lib/subprocess.py
+++ b/Lib/subprocess.py
@@ -349,6 +349,10 @@
import builtins
import warnings
import errno
+try:
+ from time import monotonic as _time
+except ImportError:
+ from time import time as _time
# Exception classes used by this module.
class SubprocessError(Exception): pass
@@ -894,7 +898,7 @@
self.wait()
else:
if timeout is not None:
- endtime = time.time() + timeout
+ endtime = _time() + timeout
else:
endtime = None
@@ -917,14 +921,14 @@
if endtime is None:
return None
else:
- return endtime - time.time()
+ return endtime - _time()
def _check_timeout(self, endtime, orig_timeout):
"""Convenience for checking if a timeout has expired."""
if endtime is None:
return
- if time.time() > endtime:
+ if _time() > endtime:
raise TimeoutExpired(self.args, orig_timeout)
@@ -1471,7 +1475,7 @@
# printing.
if endtime is not None or timeout is not None:
if endtime is None:
- endtime = time.time() + timeout
+ endtime = _time() + timeout
elif timeout is None:
timeout = self._remaining_time(endtime)