unsigned int tx_getticks(void) { #if defined(__linux__) || defined(__FreeBSD__) int err; struct timespec ts; err = clock_gettime(CLOCK_MONOTONIC, &ts); TX_CHECK(err == 0, "clock_gettime failure"); return tx_ticks = (ts.tv_sec * 1000 + ts.tv_nsec / 1000000); #elif defined(WIN32) LARGE_INTEGER now = {0}; static LARGE_INTEGER bootup = {0}; static LARGE_INTEGER frequency = {0}; if (frequency.QuadPart == 0) { QueryPerformanceCounter(&bootup); QueryPerformanceFrequency(&frequency); } QueryPerformanceCounter(&now); return tx_ticks = (now.QuadPart - bootup.QuadPart) * 1000LL / frequency.QuadPart; #endif }
unsigned int tx_getticks(void) { #if defined(__linux__) || defined(__FreeBSD__) int err; struct timespec ts; err = clock_gettime(CLOCK_MONOTONIC, &ts); TX_CHECK(err == 0, "clock_gettime failure"); return tx_ticks = (ts.tv_sec * 1000 + ts.tv_nsec / 1000000); #elif defined(WIN32) LARGE_INTEGER now = {0}; static LARGE_INTEGER bootup = {0}; static LARGE_INTEGER frequency = {0}; if (frequency.QuadPart == 0) { QueryPerformanceCounter(&bootup); QueryPerformanceFrequency(&frequency); } QueryPerformanceCounter(&now); return tx_ticks = (now.QuadPart - bootup.QuadPart) * 1000LL / frequency.QuadPart; #elif defined(__APPLE__) 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); return tx_ticks = (ts.tv_sec * 1000 + ts.tv_nsec / 1000000); #endif }