#ifndef DIY_TIME_HPP #define DIY_TIME_HPP #include #ifdef __MACH__ #include #include #endif namespace diy { typedef unsigned long time_type; inline time_type get_time() { #ifdef __MACH__ // OS X does not have clock_gettime, use clock_get_time clock_serv_t cclock; mach_timespec_t ts; host_get_clock_service(mach_host_self(), CALENDAR_CLOCK, &cclock); clock_get_time(cclock, &ts); mach_port_deallocate(mach_task_self(), cclock); #else timespec ts; clock_gettime(CLOCK_REALTIME, &ts); #endif return ts.tv_sec*1000 + ts.tv_nsec/1000000; } } #endif