diff options
author | Lasse Collin <lasse.collin@tukaani.org> | 2023-01-27 20:02:49 +0200 |
---|---|---|
committer | Lasse Collin <lasse.collin@tukaani.org> | 2023-01-27 20:02:49 +0200 |
commit | 610dde15a88f12cc540424eb3eb3ed61f3876f74 (patch) | |
tree | 06ace457ebe3c0fa2e06924722b25eed25561494 /src/xz | |
parent | po4a/po4a.conf: Sort the language identifiers in alphabetical order. (diff) | |
download | xz-610dde15a88f12cc540424eb3eb3ed61f3876f74.tar.xz |
xz: Use clock_gettime() even if CLOCK_MONOTONIC isn't available.
mythread.h and thus liblzma already does it.
Diffstat (limited to 'src/xz')
-rw-r--r-- | src/xz/mytime.c | 11 | ||||
-rw-r--r-- | src/xz/private.h | 3 |
2 files changed, 9 insertions, 5 deletions
diff --git a/src/xz/mytime.c b/src/xz/mytime.c index 0b0e2be7..8d5e994f 100644 --- a/src/xz/mytime.c +++ b/src/xz/mytime.c @@ -12,7 +12,7 @@ #include "private.h" -#if defined(HAVE_CLOCK_GETTIME) && defined(HAVE_CLOCK_MONOTONIC) +#ifdef HAVE_CLOCK_GETTIME # include <time.h> #else # include <sys/time.h> @@ -35,14 +35,19 @@ static uint64_t next_flush; static uint64_t mytime_now(void) { -#if defined(HAVE_CLOCK_GETTIME) && defined(HAVE_CLOCK_MONOTONIC) +#ifdef HAVE_CLOCK_GETTIME + struct timespec tv; + +# ifdef HAVE_CLOCK_MONOTONIC // If CLOCK_MONOTONIC was available at compile time but for some // reason isn't at runtime, fallback to CLOCK_REALTIME which // according to POSIX is mandatory for all implementations. static clockid_t clk_id = CLOCK_MONOTONIC; - struct timespec tv; while (clock_gettime(clk_id, &tv)) clk_id = CLOCK_REALTIME; +# else + clock_gettime(CLOCK_REALTIME, &tv); +# endif return (uint64_t)tv.tv_sec * 1000 + (uint64_t)(tv.tv_nsec / 1000000); #else diff --git a/src/xz/private.h b/src/xz/private.h index a20dbc57..8a2db9ff 100644 --- a/src/xz/private.h +++ b/src/xz/private.h @@ -56,8 +56,7 @@ // polls the time and the SIGTSTP handling adds slight overhead to // that code. Most (all?) systems that have SIGTSTP also have SIGALRM // so this requirement won't exclude many systems. -#if defined(HAVE_CLOCK_GETTIME) && defined(HAVE_CLOCK_MONOTONIC) \ - && defined(SIGTSTP) && defined(SIGALRM) +#if defined(HAVE_CLOCK_GETTIME) && defined(SIGTSTP) && defined(SIGALRM) # define USE_SIGTSTP_HANDLER 1 #endif |