[Python-Dev] PEP 418: Add monotonic clock

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.
-
Yury


More information about the Python-Dev mailing list

AltStyle によって変換されたページ (->オリジナル) /