]> git.ipfire.org Git - thirdparty/xz.git/commitdiff
xz/Windows: Allow clock_gettime with POSIX threads.
authorLasse Collin <lasse.collin@tukaani.org>
Sun, 24 Sep 2023 22:46:36 +0000 (01:46 +0300)
committerLasse Collin <lasse.collin@tukaani.org>
Sun, 22 Oct 2023 15:59:45 +0000 (18:59 +0300)
If winpthreads are used for threading, it's OK to use clock_gettime()
from winpthreads too.

src/xz/mytime.c

index 4d8da513481d02156f9de20e309e346c97380c36..602e897e7692d77f0d395fbb30cd57245f7644fd 100644 (file)
@@ -14,7 +14,8 @@
 
 #if defined(MYTHREAD_VISTA) || defined(_MSC_VER)
        // Nothing
-#elif defined(HAVE_CLOCK_GETTIME) && !defined(__MINGW32__)
+#elif defined(HAVE_CLOCK_GETTIME) \
+               && (!defined(__MINGW32__) || defined(MYTHREAD_POSIX))
 #      include <time.h>
 #else
 #      include <sys/time.h>
@@ -59,9 +60,11 @@ mytime_now(void)
        // there's no reason to avoid a WinVista API here either.
        return GetTickCount64();
 
-#elif defined(HAVE_CLOCK_GETTIME) && !defined(__MINGW32__)
+#elif defined(HAVE_CLOCK_GETTIME) \
+               && (!defined(__MINGW32__) || defined(MYTHREAD_POSIX))
        // MinGW-w64: clock_gettime() is defined in winpthreads but we need
-       // nothing else from winpthreads. By avoiding clock_gettime(), we
+       // nothing else from winpthreads (unless, for some odd reason, POSIX
+       // threading has been selected). By avoiding clock_gettime(), we
        // avoid the dependency on libwinpthread-1.dll or the need to link
        // against the static version. The downside is that the fallback
        // method, gettimeofday(), doesn't provide monotonic time.