Victor Stinner wrote:
Is steady() merely a convenience function to avoid the user having
to write something like this?
steady() remembers if the last call to monotonic failed or not. The
real implementation is closer to something like:
def steady():
if not steady.has_monotonic:
return time.time()
try:
return time.monotonic()
except (AttributeError, OSError):
steady.has_monotonic = False
return time.time()
steady.has_monotonic = True
Does this mean that there are circumstances where monotonic will work for a
while, but then fail?
Otherwise, we would only need to check monotonic once, when the time module is
first loaded, rather than every time it is called. Instead of the above:
# global to the time module
try:
monotonic()
except (NameError, OSError):
steady = time
else:
steady = monotonic
Are there failure modes where monotonic can recover? That is, it works for a
while, then raises OSError, then works again on the next call.
If so, steady will stop using monotonic and never try it again. Is that
deliberate?
--
Steven
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com