Added timing support for Mac OS X

This commit is contained in:
Kristians Vebers
2014-02-11 14:10:06 +02:00
parent 5853a41a3e
commit 09db539589

View File

@@ -1,5 +1,10 @@
#include "timing.h" #include "timing.h"
#ifdef __MACH__
#include <mach/clock.h>
#include <mach/mach.h>
#endif
#ifdef WINDOWS #ifdef WINDOWS
@@ -28,7 +33,19 @@ timespec diff(timespec start, timespec end);
void getTime(timespec* time) void getTime(timespec* time)
{ {
#ifdef __MACH__ // OS X does not have clock_gettime, use clock_get_time
clock_serv_t cclock;
mach_timespec_t mts;
host_get_clock_service(mach_host_self(), CALENDAR_CLOCK, &cclock);
clock_get_time(cclock, &mts);
mach_port_deallocate(mach_task_self(), cclock);
time->tv_sec = mts.tv_sec;
time->tv_nsec = mts.tv_nsec;
#else
clock_gettime(CLOCK_PROCESS_CPUTIME_ID, time); clock_gettime(CLOCK_PROCESS_CPUTIME_ID, time);
#endif
} }
double diffclock(timespec time1,timespec time2) double diffclock(timespec time1,timespec time2)
{ {