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
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4