summaryrefslogtreecommitdiffstats
path: root/src/concurrent/qtconcurrentiteratekernel.h
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@theqtcompany.com>2016-01-26 14:35:50 +0100
committerLiang Qi <liang.qi@theqtcompany.com>2016-01-26 16:27:28 +0100
commita15c3d086dafea83e4760f0b447be43d26b80697 (patch)
treefd224a3f83942ff4c432e1e3a3f8583d14d6a11c /src/concurrent/qtconcurrentiteratekernel.h
parent87abfd351af6309691d921ca0aef077d74df4732 (diff)
parent397061a6a92db9f962360d5db96f69b315f93074 (diff)
Merge remote-tracking branch 'origin/5.6' into dev
Conflicts: src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java src/dbus/qdbusconnection_p.h src/dbus/qdbusintegrator.cpp src/dbus/qdbusintegrator_p.h tests/auto/corelib/io/qdir/qdir.pro tests/auto/corelib/io/qiodevice/tst_qiodevice.cpp Change-Id: I3d3fd07aed015c74b1f545f1327aa73d5f365fcc
Diffstat (limited to 'src/concurrent/qtconcurrentiteratekernel.h')
-rw-r--r--src/concurrent/qtconcurrentiteratekernel.h28
1 files changed, 27 insertions, 1 deletions
diff --git a/src/concurrent/qtconcurrentiteratekernel.h b/src/concurrent/qtconcurrentiteratekernel.h
index 2540f2f9be..b4360abd26 100644
--- a/src/concurrent/qtconcurrentiteratekernel.h
+++ b/src/concurrent/qtconcurrentiteratekernel.h
@@ -88,6 +88,32 @@ private:
Q_DISABLE_COPY(BlockSizeManager)
};
+// ### Qt6: Replace BlockSizeManager with V2 implementation
+class Q_CONCURRENT_EXPORT BlockSizeManagerV2
+{
+public:
+ explicit BlockSizeManagerV2(int iterationCount);
+
+ void timeBeforeUser();
+ void timeAfterUser();
+ int blockSize();
+
+private:
+ inline bool blockSizeMaxed()
+ {
+ return (m_blockSize >= maxBlockSize);
+ }
+
+ const int maxBlockSize;
+ qint64 beforeUser;
+ qint64 afterUser;
+ MedianDouble controlPartElapsed;
+ MedianDouble userPartElapsed;
+ int m_blockSize;
+
+ Q_DISABLE_COPY(BlockSizeManagerV2)
+};
+
template <typename T>
class ResultReporter
{
@@ -196,7 +222,7 @@ public:
ThreadFunctionResult forThreadFunction()
{
- BlockSizeManager blockSizeManager(iterationCount);
+ BlockSizeManagerV2 blockSizeManager(iterationCount);
ResultReporter<T> resultReporter(this);
for(;;) {