Nick Mathewson
90ca446048
Remove windows debugging prints: it was an integer overflow hitting ftrapv
2016-07-26 11:07:53 -04:00
Nick Mathewson
019b7ddb9f
fix identifier mistake :(
2016-07-26 10:44:51 -04:00
Nick Mathewson
160d2c6aab
Redux^3: Temporarily add windows verbosity to track down jenkins failures
2016-07-26 10:36:44 -04:00
Nick Mathewson
0cef69713c
Redux^2: Temporarily add windows verbosity to track down jenkins failures
2016-07-26 10:04:40 -04:00
Nick Mathewson
264fb7eb82
debugging: print ticks-per-second on windows. is it 0?
2016-07-26 09:44:41 -04:00
Nick Mathewson
1033713c9c
Temporarily add some windows verbosity to track down unit test failure on jenkins.
2016-07-26 08:56:55 -04:00
Nick Mathewson
3f9c036821
Try a little harder to work around mingw clock_gettime weirdness
2016-07-26 08:22:37 -04:00
Nick Mathewson
53f9f71985
ug no, the RIGHT fix.
2016-07-21 15:29:56 +02:00
Nick Mathewson
9c210d0e81
Avoid infinite stack explosion in windows monotime.
...
[init calls get calls init calls get calls init.... ]
2016-07-21 15:26:05 +02:00
Nick Mathewson
1d0775684d
Once more, 32-bit fixes on monotime mocking
2016-07-21 14:32:15 +02:00
Nick Mathewson
22314f9050
loony mingwcross bug: insist we dont have clock_gettime.
2016-07-21 14:09:00 +02:00
Nick Mathewson
852cff043b
fix monotime test mocking on 32-bit systems
2016-07-21 14:05:29 +02:00
Nick Mathewson
2d26b1a549
Actually make monotonic time functions mockable.
...
This is different from making the functions mockable, since
monotime_t is opaque and so providing mocks for the functions is
really hard.
2016-07-21 07:02:33 -04:00
Nick Mathewson
72a1f0180d
Revert "Make the monotonic{_coarse,}_get() functions mockable."
...
This reverts commit 2999f0b33f
.
2016-07-21 10:30:21 +02:00
Nick Mathewson
2999f0b33f
Make the monotonic{_coarse,}_get() functions mockable.
2016-07-21 10:25:23 +02:00
Nick Mathewson
6ba415d400
Make sure initialized_at is initialized before use.
2016-07-19 11:40:47 +02:00
Nick Mathewson
2a217ef723
Expose monotonic time ratchet functions for testing.
2016-07-19 11:40:47 +02:00
Nick Mathewson
dc6f5d1dc1
Basic portable monotonic timer implementation
...
This code uses QueryPerformanceCounter() [**] on Windows,
mach_absolute_time() on OSX, clock_gettime() where available, and
gettimeofday() [*] elsewhere.
Timer types are stored in an opaque OS-specific format; the only
supported operation is to compute the difference between two timers.
[*] As you know, gettimeofday() isn't monotonic, so we include
a simple ratchet function to ensure that it only moves forward.
[**] As you may not know, QueryPerformanceCounter() isn't actually
always as monotonic as you might like it to be, so we ratchet that
one too.
We also include a "coarse monotonic timer" for cases where we don't
actually need high-resolution time. This is GetTickCount{,64}() on
Windows, clock_gettime(CLOCK_MONOTONIC_COARSE) on Linux, and falls
back to regular monotonic time elsewhere.
2016-07-19 11:40:46 +02:00
Nick Mathewson
aa971c5924
Move our "what time is it now" compat functions into a new module
...
I'm not moving our "format and parse the time" functions, since
those have been pretty volatile over the last couple of years.
2016-07-08 10:38:59 -04:00