diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2019-02-04 21:06:43 +0100 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2019-02-04 21:06:43 +0100 |
commit | 56d2b08c5aad5ec9f32cf05e1ead60e846c53ee5 (patch) | |
tree | f2561735961471ac5af689f0bdc9c32805496d7d /lib/pure | |
parent | 57b49cc509cf569935878648526ecc80efd5f347 (diff) | |
download | Nim-56d2b08c5aad5ec9f32cf05e1ead60e846c53ee5.tar.gz |
times.nim: make it compile on older OSX versions
Diffstat (limited to 'lib/pure')
-rw-r--r-- | lib/pure/times.nim | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/lib/pure/times.nim b/lib/pure/times.nim index 3fb9ccdb7..20941fcc2 100644 --- a/lib/pure/times.nim +++ b/lib/pure/times.nim @@ -229,6 +229,10 @@ elif defined(posix): when not defined(valgrind_workaround_10121): tzset() + when defined(macosx): + proc gettimeofday(tp: var Timeval, unused: pointer = nil) + {.importc: "gettimeofday", header: "<sys/time.h>".} + elif defined(windows): import winlean, std/time_t @@ -1107,6 +1111,11 @@ proc getTime*(): Time {.tags: [TimeEffect], benign.} = let nanos = convert(Milliseconds, Nanoseconds, millis mod convert(Seconds, Milliseconds, 1).int) result = initTime(seconds, nanos) + elif defined(macosx): + var a: Timeval + gettimeofday(a) + result = initTime(a.tv_sec.int64, + convert(Microseconds, Nanoseconds, a.tv_usec.int)) elif defined(posix): var ts: Timespec discard clock_gettime(realTimeClockId, ts) @@ -2451,7 +2460,11 @@ when not defined(JS): ## on the hardware/OS). ## ## ``getTime`` should generally be prefered over this proc. - when defined(posix): + when defined(macosx): + var a: Timeval + gettimeofday(a) + result = toBiggestFloat(a.tv_sec.int64) + toFloat(a.tv_usec)*0.00_0001 + elif defined(posix): var ts: Timespec discard clock_gettime(realTimeClockId, ts) result = toBiggestFloat(ts.tv_sec.int64) + |