X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=gettime-thread.c;h=72cc4d8a472783f7e73d7d40f8a8da9f56759a2a;hp=c1b4b0967c28f354b8a3e6c9ad82fc2845c41e56;hb=27325ed5a4f770b681c6847352c547d51dbdeb62;hpb=95820b6e6c92025df8d89c0bf39b174e53137c41 diff --git a/gettime-thread.c b/gettime-thread.c index c1b4b096..72cc4d8a 100644 --- a/gettime-thread.c +++ b/gettime-thread.c @@ -6,7 +6,7 @@ #include "fio.h" #include "smalloc.h" -struct timeval *fio_tv; +struct timeval *fio_tv = NULL; int fio_gtod_offload = 0; int fio_gtod_cpu = -1; static pthread_t gtod_thread; @@ -20,8 +20,15 @@ void fio_gtod_init(void) static void fio_gtod_update(void) { - if (fio_tv) - gettimeofday(fio_tv, NULL); + if (fio_tv) { + struct timeval __tv; + + gettimeofday(&__tv, NULL); + fio_tv->tv_sec = __tv.tv_sec; + write_barrier(); + fio_tv->tv_usec = __tv.tv_usec; + write_barrier(); + } } static void *gtod_thread_main(void *data)