]> git.ipfire.org Git - thirdparty/xz.git/commitdiff
xz/Windows: Use GetTickCount64() with MinGW-w64 if using Vista threads.
authorLasse Collin <lasse.collin@tukaani.org>
Sat, 23 Sep 2023 21:21:22 +0000 (00:21 +0300)
committerLasse Collin <lasse.collin@tukaani.org>
Sun, 22 Oct 2023 15:59:45 +0000 (18:59 +0300)
src/xz/mytime.c

index 4c13d37727812db6a4925dc2f1db5b79353c8c70..ddfd5deb532f8727e3a29e5b977a7825691ccf1d 100644 (file)
@@ -12,7 +12,7 @@
 
 #include "private.h"
 
-#if defined(_MSC_VER)
+#if defined(MYTHREAD_VISTA) || defined(_MSC_VER)
        // Nothing
 #elif defined(HAVE_CLOCK_GETTIME)
 #      include <time.h>
@@ -47,8 +47,16 @@ static uint64_t next_flush;
 static uint64_t
 mytime_now(void)
 {
-#if defined(_MSC_VER)
-       // NOTE: This requires Windows Vista or later.
+#if defined(MYTHREAD_VISTA) || defined(_MSC_VER)
+       // Since there is no SIGALRM on Windows, this function gets
+       // called frequently when the progress indicator is in use.
+       // Progress indicator doesn't need high-resolution time.
+       // GetTickCount64() has very low overhead but needs at least WinVista.
+       //
+       // MinGW-w64 provides the POSIX functions clock_gettime() and
+       // gettimeofday() in a manner that allow xz to run on older
+       // than WinVista. If the threading method needs WinVista anyway,
+       // there's no reason to avoid a WinVista API here either.
        return GetTickCount64();
 
 #elif defined(HAVE_CLOCK_GETTIME)