diff options
Diffstat (limited to 'src/concurrent')
-rw-r--r-- | src/concurrent/doc/qtconcurrent.qdocconf | 2 | ||||
-rw-r--r-- | src/concurrent/qtconcurrentiteratekernel.cpp | 9 |
2 files changed, 7 insertions, 4 deletions
diff --git a/src/concurrent/doc/qtconcurrent.qdocconf b/src/concurrent/doc/qtconcurrent.qdocconf index 7fa437c17f..9d89192946 100644 --- a/src/concurrent/doc/qtconcurrent.qdocconf +++ b/src/concurrent/doc/qtconcurrent.qdocconf @@ -27,7 +27,7 @@ qhp.QtConcurrent.subprojects.classes.sortPages = true tagfile = ../../../doc/qtconcurrent/qtconcurrent.tags -depends += qtcore +depends += qtcore qtdoc headerdirs += .. diff --git a/src/concurrent/qtconcurrentiteratekernel.cpp b/src/concurrent/qtconcurrentiteratekernel.cpp index c3b35afe3f..268d85cb01 100644 --- a/src/concurrent/qtconcurrentiteratekernel.cpp +++ b/src/concurrent/qtconcurrentiteratekernel.cpp @@ -90,10 +90,13 @@ static qint64 getticks() # if (_POSIX_THREAD_CPUTIME-0 == 0) // detect availablility of CLOCK_THREAD_CPUTIME_ID - static long useThreadCpuTime = -2; + static QBasicAtomicInt sUseThreadCpuTime = Q_BASIC_ATOMIC_INITIALIZER(-2); + int useThreadCpuTime = sUseThreadCpuTime.load(); if (useThreadCpuTime == -2) { - // sysconf() will return either -1 or _POSIX_VERSION (don't care about thread races here) - useThreadCpuTime = sysconf(_SC_THREAD_CPUTIME); + // sysconf() will return either -1L or _POSIX_VERSION + // (don't care about sysconf's exact return value) + useThreadCpuTime = sysconf(_SC_THREAD_CPUTIME) == -1L ? -1 : 0 ; + sUseThreadCpuTime.store(useThreadCpuTime); // might happen multiple times, but doesn't matter } if (useThreadCpuTime != -1) clockId = CLOCK_THREAD_CPUTIME_ID; |