From: Yann Collet Date: Tue, 16 Jan 2018 18:21:37 +0000 (-0800) Subject: use more restrictive conditions for clock_gettime() X-Git-Tag: upstream/1.9.3~8^2~70^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7dba09af47dd3daa1562a6332a643a1a59dba4a8;p=platform%2Fupstream%2Flz4.git use more restrictive conditions for clock_gettime() --- diff --git a/programs/util.h b/programs/util.h index fc7f63e..a3576d7 100644 --- a/programs/util.h +++ b/programs/util.h @@ -141,6 +141,7 @@ extern "C" { * Time functions ******************************************/ #if defined(_WIN32) /* Windows */ + typedef LARGE_INTEGER UTIL_time_t; UTIL_STATIC UTIL_time_t UTIL_getTime(void) { UTIL_time_t x; QueryPerformanceCounter(&x); return x; } UTIL_STATIC U64 UTIL_getSpanTimeMicro(UTIL_time_t clockStart, UTIL_time_t clockEnd) @@ -165,7 +166,9 @@ extern "C" { } return 1000000000ULL*(clockEnd.QuadPart - clockStart.QuadPart)/ticksPerSecond.QuadPart; } + #elif defined(__APPLE__) && defined(__MACH__) + #include typedef U64 UTIL_time_t; UTIL_STATIC UTIL_time_t UTIL_getTime(void) { return mach_absolute_time(); } @@ -189,7 +192,9 @@ extern "C" { } return ((clockEnd - clockStart) * (U64)rate.numer) / ((U64)rate.denom); } -#elif (PLATFORM_POSIX_VERSION >= 200112L) + +#elif (PLATFORM_POSIX_VERSION >= 200112L) && (defined __UCLIBC__ || ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 17) || __GLIBC__ > 2)) + #include typedef struct timespec UTIL_time_t; UTIL_STATIC UTIL_time_t UTIL_getTime(void) @@ -227,7 +232,9 @@ extern "C" { nano += diff.tv_nsec; return nano; } + #else /* relies on standard C (note : clock_t measurements can be wrong when using multi-threading) */ + typedef clock_t UTIL_time_t; UTIL_STATIC UTIL_time_t UTIL_getTime(void) { return clock(); } UTIL_STATIC U64 UTIL_getSpanTimeMicro(UTIL_time_t clockStart, UTIL_time_t clockEnd) { return 1000000ULL * (clockEnd - clockStart) / CLOCKS_PER_SEC; }