On Tue, May 3, 2011 at 7:10 PM, Levente Uzonyi <leves@elte.hu> wrote:

On Tue, 3 May 2011, Eliot Miranda wrote:

Its because on linux & mac the clock is derived from gettimeofday which is
wall time but on Windows it is derived from timeGetTime which isn't. The problem is the lack of a high-resolution wall time on Windows. GetSystemTimeAsFileTime et al have something like 16 ms resolution whereas timeGetTime has 1ms resolution.

On vista the accuracy of GetLocalTime (which is a "friend" of
GetSystemTimeAsFileTime) seems to be 1ms.

Good.  Time to change.  I'll test this on XP soon.
 
E.g.:

s := Set new.
[ s size < 10 ] whileTrue: [ s add: Win32SystemTime localDateAndTime ].
s sorted

Output:
 {2011-05-04T04:03:40.049+02:00 . 2011-05-04T04:03:40.05+02:00 . 2011-05-04T04:03:40.051+02:00 . 2011-05-04T04:03:40.052+02:00 . 2011-05-04T04:03:40.053+02:00 . 2011-05-04T04:03:40.054+02:00 . 2011-05-04T04:03:40.055+02:00 . 2011-05-04T04:03:40.056+02:00 . 2011-05-04T04:03:40.057+02:00 . 2011-05-04T04:03:40.058+02:00}


Levente