[Issue 16797] New: Zero clock resolution lead to division by zero

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Sat Nov 26 12:01:24 PST 2016


https://issues.dlang.org/show_bug.cgi?id=16797

          Issue ID: 16797
           Summary: Zero clock resolution lead to division by zero
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P1
         Component: druntime
          Assignee: nobody at puremagic.com
          Reporter: wikodes at gmail.com

Some linux systems (eg. CentOS 6.4/7) return a clock result of zero.
Data gathered with:
#include <time.h>
#include <stdio.h>

int main() {
  struct timespec ts;
  int res;
  int i;
  for (i = 0; i < 10; ++i) {
     res = clock_getres(i, &ts);
     printf("i %d tv_sec %ld tv_nsec %ld\n", i, ts.tv_sec, ts.tv_nsec);
 }
}
output:
...
i 4 tv_sec 0 tv_nsec 0

This lead to a division by zero in druntime/src/core/time.d:_d_initMonoTime
... (around line 2450)
  tps[i] = ts.tv_nsec >= 1000 ? 1_000_000_000L : 1_000_000_000L / ts.tv_nsec;

--


More information about the Digitalmars-d-bugs mailing list