[Python-checkins] cpython: Close #14690: Use monotonic clock instead of system clock in the sched,
victor.stinner
python-checkins at python.org
Wed May 30 13:31:45 CEST 2012
http://hg.python.org/cpython/rev/1345cf58738d
changeset: 77243:1345cf58738d
user: Victor Stinner <victor.stinner at gmail.com>
date: Wed May 30 13:30:32 2012 +0200
summary:
Close #14690: Use monotonic clock instead of system clock in the sched,
subprocess and trace modules.
files:
Lib/sched.py | 6 +++++-
Lib/subprocess.py | 12 ++++++++----
Lib/trace.py | 10 +++++++---
Misc/NEWS | 3 +++
4 files changed, 23 insertions(+), 8 deletions(-)
diff --git a/Lib/sched.py b/Lib/sched.py
--- a/Lib/sched.py
+++ b/Lib/sched.py
@@ -35,6 +35,10 @@
import threading
except ImportError:
import dummy_threading as threading
+try:
+ from time import monotonic as _time
+except ImportError:
+ from time import time as _time
__all__ = ["scheduler"]
@@ -48,7 +52,7 @@
class scheduler:
- def __init__(self, timefunc=time.time, delayfunc=time.sleep):
+ def __init__(self, timefunc=_time, delayfunc=time.sleep):
"""Initialize a new instance, passing the time and delay
functions"""
self._queue = []
diff --git a/Lib/subprocess.py b/Lib/subprocess.py
--- 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)
diff --git a/Lib/trace.py b/Lib/trace.py
--- a/Lib/trace.py
+++ b/Lib/trace.py
@@ -61,6 +61,10 @@
import dis
import pickle
from warnings import warn as _warn
+try:
+ from time import monotonic as _time
+except ImportError:
+ from time import time as _time
try:
import threading
@@ -476,7 +480,7 @@
self._caller_cache = {}
self.start_time = None
if timing:
- self.start_time = time.time()
+ self.start_time = _time()
if countcallers:
self.globaltrace = self.globaltrace_trackcallers
elif countfuncs:
@@ -614,7 +618,7 @@
self.counts[key] = self.counts.get(key, 0) + 1
if self.start_time:
- print('%.2f' % (time.time() - self.start_time), end=' ')
+ print('%.2f' % (_time() - self.start_time), end=' ')
bname = os.path.basename(filename)
print("%s(%d): %s" % (bname, lineno,
linecache.getline(filename, lineno)), end='')
@@ -627,7 +631,7 @@
lineno = frame.f_lineno
if self.start_time:
- print('%.2f' % (time.time() - self.start_time), end=' ')
+ print('%.2f' % (_time() - self.start_time), end=' ')
bname = os.path.basename(filename)
print("%s(%d): %s" % (bname, lineno,
linecache.getline(filename, lineno)), end='')
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -60,6 +60,9 @@
Library
-------
+- Issue #14690: Use monotonic clock instead of system clock in the sched,
+ subprocess and trace modules.
+
- Issue #14958: Change IDLE systax highlighting to recognize all string and
byte literals supported in Python 3.3.
--
Repository URL: http://hg.python.org/cpython
More information about the Python-checkins
mailing list