[Python-Dev] Rename time.steady(strict=True) to time.monotonic()? (original) (raw)

Steven D'Aprano steve at pearwood.info
Sat Mar 24 03:08:58 CET 2012


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.hasmonotonic: return time.time() try: return time.monotonic() except (AttributeError, OSError): steady.hasmonotonic = False return time.time() steady.hasmonotonic = 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



More information about the Python-Dev mailing list