[Python-Dev] PEP 418: Add monotonic clock (original) (raw)

Yury Selivanov yselivanov.ml at gmail.com
Wed Mar 28 19:55:40 CEST 2012


On 2012-03-28, at 11:35 AM, Nick Coghlan wrote:

So, the primary use case is that we want to replace many of the time.time() calls in the standard library with time.monotonic() calls. To avoid backwards compatibility problems in the cross-platform support, that means time.monotonic() *must be available on every platform that currently provides time.time()*.

OK. I got your point. And also I've just realized what I dislike about the way you want to implement the fallback. The main problem is that I treat the situation when time jumps backward as an exception, because, again, if you have timeouts you may get those timeouts to never be executed. So let's make the "try_monotonic()" function (or whatever name will be chosen) this way (your original code edited):

def _make_monotic(): try: # Use underlying system monotonic clock if we can return _monotonic except NameError: _tick = time() def monotic(): nonlocal _time _new_tick = time() if _new_tick <= _tick: raise RuntimeError('time was adjusted backward') _tick = _new_tick return _new_tick

     return monotonic

try_monotonic = _make_monotonic()

At least this approach tries to follow some of the python's zen.



More information about the Python-Dev mailing list