mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-10 21:23:58 +01:00
Use a slightly more accurate formula for OSX 32-bit msec conversion
We use an optimized but less accurate formula for converting coarse time differences to milliseconds on 32-bit OSX platforms, so that we can avoid 64-bit division. The old numbers were off by 0.4%. The new numbers are off by .006%. This should make the unit tests a bit cleaner, and our tolerances a bit closer.
This commit is contained in:
parent
3ddfd5ff25
commit
4eabc6db47
@ -299,11 +299,11 @@ monotime_init_internal(void)
|
||||
}
|
||||
{
|
||||
// For converting ticks to milliseconds in a 32-bit-friendly way, we
|
||||
// will first right-shift by 20, and then multiply by 20/19, since
|
||||
// (1<<20) * 19/20 is about 1e6. We precompute a new numerate and
|
||||
// will first right-shift by 20, and then multiply by 2048/1953, since
|
||||
// (1<<20) * 1953/2048 is about 1e6. We precompute a new numerator and
|
||||
// denominator here to avoid multiple multiplies.
|
||||
mach_time_info_msec_cvt.numer = mach_time_info.numer * 20;
|
||||
mach_time_info_msec_cvt.denom = mach_time_info.denom * 19;
|
||||
mach_time_info_msec_cvt.numer = mach_time_info.numer * 2048;
|
||||
mach_time_info_msec_cvt.denom = mach_time_info.denom * 1953;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user