[LEAPSECS] Coding this week, and a trick for timeouts over leap seconds.

Paul Sheer p at 2038bug.com
Fri Oct 14 10:21:18 EDT 2011



On Mon, 2011-10-03 at 12:19 +0100, Tony Finch wrote:

> Tom Van Baak <tvb at LeapSecond.com> wrote:

> >

> > Try using clock() instead of gettimeofday_in_millisecs(). The former

> > nicely increments with CLOCKS_PER_SEC resolution and is immune

> > from UTC, timezones, and leap seconds. At least it does on windows.

> > Can someone comment on unix/linux?

>

> clock() is broken on Windows in order to be backwards-compatible with DOS.

> It is supposed to return the time the process has spent running on the

> CPU, which is traditionally rather slower than real time, though it may be

> faster for a multithreaded process on a multicore computer. Since DOS

> didn't multitask it just returned elapsed time since the process started,

> and Windows has retained this braindamaged semantics.

>



BTW Windows has QueryPerformanceCounter(). However much as I like Unix
clock() and clock_gettime(CLOCK_MONOTONIC), I'm stuck with the problem
that there are many third party libraries with which I link and much
code written by other teams that I have no idea about.

Any one of those components (some of which run on other machines to
my code - to which I communicate over the network) could have a false
1 second delay.

So it still seems the best way is to assume the delay might be there
and to program defensively. *shrug*

-paul






More information about the LEAPSECS mailing list