STINNER Victor added the comment:

> How do you know that the timer used by the select/poll/etc. call has the same 
> resolution?

If I understood correctly, there a 3 kind of clocks on Windows:

- kernel heartbeat: GetSystemTimeAdjustment() gives the resolution (a few 
milliseconds)
- multimedia timers
- performance counter: the resolution is 1 / QueryPerformanceFrequency() (at 
least 1 microsecond)

GetSystemTimeAsFileTime() (time.time), GetTickCount[64]() (time.monotonic) and 
GetProcessTimes() (time.process_time) use the kernel heartbeat (I invented this 
name :-)). GetTickCount() is not adjusted.

QueryPerformanceCounter() is the performance counter, it is used by 
time.perf_counter().

GetSystemTimeAdjustment():
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724394%28v=vs.85%29.aspx

For more information, see the PEP 418:
http://www.python.org/dev/peps/pep-0418/

> Can the clock resolution be zero?

There is a unit test to ensure that the resolution of all clocks is greater 
than 0 and smaller or equal than 1.0.

> If not, I recommend adjusting the comparisons so that an event scheduled at 
> exactly the rounded-up 'now' value is not considered ready -- it should be 
> strictly before.

Ok, here is an updated patch.

----------
Added file: http://bugs.python.org/file34027/clock_resolution-2.patch

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue20505>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to