Bug 15334 – [REG 2.069] OS X core.time ticksPerSecond calculation is incorrect
Status
RESOLVED
Resolution
FIXED
Severity
regression
Priority
P1
Component
druntime
Product
D
Version
D2
Platform
All
OS
Mac OS X
Creation time
2015-11-14T07:47:52Z
Last change time
2018-01-05T13:26:59Z
Assigned to
No Owner
Creator
Dan Olson
Comments
Comment #0 by gorox — 2015-11-14T07:47:52Z
The _d_initMonoTime() version(OSX) calculation for ticksPerSecond is using a flipped mach_timebase_info ratio numer/denom when it should be denom/numer. Fortunately (or unfortunately depending on your point of view) it doesn't show up as a problem on Intel OS X Macs because numer and denom are both 1.
On an iOS iPhone, wrong results would be produced because numer = 125 and denom = 3.
The wrong calculation shows up here:
https://github.com/D-Programming-Language/druntime/blob/master/src/core/time.d#L2639
This is a regression because the correct calculation shows up in the deprecated struct TickDuration here:
https://github.com/D-Programming-Language/druntime/blob/master/src/core/time.d#L2954