Commit ebef9f5a authored by Luca Barbato's avatar Luca Barbato

time: Use clock_gettime if the monotonic clock is available

Signed-off-by: 's avatarLuca Barbato <lu_zero@gentoo.org>
parent 65e78a2e
...@@ -1432,6 +1432,7 @@ MATH_FUNCS=" ...@@ -1432,6 +1432,7 @@ MATH_FUNCS="
SYSTEM_FUNCS=" SYSTEM_FUNCS="
aligned_malloc aligned_malloc
clock_gettime
closesocket closesocket
CommandLineToArgvW CommandLineToArgvW
CoTaskMemFree CoTaskMemFree
...@@ -4038,6 +4039,9 @@ check_func_headers malloc.h _aligned_malloc && enable aligned_malloc ...@@ -4038,6 +4039,9 @@ check_func_headers malloc.h _aligned_malloc && enable aligned_malloc
check_func ${malloc_prefix}memalign && enable memalign check_func ${malloc_prefix}memalign && enable memalign
check_func ${malloc_prefix}posix_memalign && enable posix_memalign check_func ${malloc_prefix}posix_memalign && enable posix_memalign
check_cpp_condition unistd.h "defined(_POSIX_MONOTONIC_CLOCK)" &&
check_func_headers time.h clock_gettime || { check_func_headers time.h clock_gettime -lrt && add_extralibs -lrt; }
check_func fcntl check_func fcntl
check_func fork check_func fork
check_func gethrtime check_func gethrtime
......
...@@ -21,7 +21,9 @@ ...@@ -21,7 +21,9 @@
#include <stddef.h> #include <stddef.h>
#include <stdint.h> #include <stdint.h>
#include <time.h> #include <time.h>
#if HAVE_GETTIMEOFDAY #if HAVE_CLOCK_GETTIME
#include <time.h>
#elif HAVE_GETTIMEOFDAY
#include <sys/time.h> #include <sys/time.h>
#endif #endif
#if HAVE_UNISTD_H #if HAVE_UNISTD_H
...@@ -36,7 +38,11 @@ ...@@ -36,7 +38,11 @@
int64_t av_gettime(void) int64_t av_gettime(void)
{ {
#if HAVE_GETTIMEOFDAY #if HAVE_CLOCK_GETTIME
struct timespec ts;
clock_gettime(CLOCK_MONOTONIC, &ts);
return (int64_t)ts.tv_sec * 100000 + ts.tv_nsec / 1000;
#elif HAVE_GETTIMEOFDAY
struct timeval tv; struct timeval tv;
gettimeofday(&tv, NULL); gettimeofday(&tv, NULL);
return (int64_t)tv.tv_sec * 1000000 + tv.tv_usec; return (int64_t)tv.tv_sec * 1000000 + tv.tv_usec;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment