Move QtConcurrent into its own module
Task-number: QTBUG-20892 Change-Id: I614500aafb6428915509983608bbb0ade4e4f016 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
parent
c8156cab81
commit
96501b0a18
@ -141,6 +141,7 @@ sub findQtHeaders
|
|||||||
die "This script requires the QTDIR environment variable pointing to Qt 5\n" unless $qtdir;
|
die "This script requires the QTDIR environment variable pointing to Qt 5\n" unless $qtdir;
|
||||||
|
|
||||||
findQtHeaders('QtCore', $qtdir);
|
findQtHeaders('QtCore', $qtdir);
|
||||||
|
findQtHeaders('QtConcurrent', $qtdir);
|
||||||
findQtHeaders('QtWidgets', $qtdir);
|
findQtHeaders('QtWidgets', $qtdir);
|
||||||
findQtHeaders('QtPrintSupport', $qtdir);
|
findQtHeaders('QtPrintSupport', $qtdir);
|
||||||
|
|
||||||
|
@ -41,6 +41,7 @@
|
|||||||
#define IMAGESCALING_H
|
#define IMAGESCALING_H
|
||||||
|
|
||||||
#include <QtWidgets>
|
#include <QtWidgets>
|
||||||
|
#include <QtConcurrent>
|
||||||
|
|
||||||
#ifndef QT_NO_CONCURRENT
|
#ifndef QT_NO_CONCURRENT
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
TEMPLATE = app
|
TEMPLATE = app
|
||||||
DEPENDPATH += .
|
DEPENDPATH += .
|
||||||
INCLUDEPATH += .
|
INCLUDEPATH += .
|
||||||
|
QT += concurrent
|
||||||
|
|
||||||
# Input
|
# Input
|
||||||
SOURCES += main.cpp imagescaling.cpp
|
SOURCES += main.cpp imagescaling.cpp
|
||||||
|
@ -38,6 +38,7 @@
|
|||||||
**
|
**
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
#include <QtWidgets>
|
#include <QtWidgets>
|
||||||
|
#include <QtConcurrent>
|
||||||
|
|
||||||
#ifndef QT_NO_CONCURRENT
|
#ifndef QT_NO_CONCURRENT
|
||||||
|
|
||||||
|
@ -2,6 +2,7 @@ TEMPLATE = app
|
|||||||
TARGET = mapdemo
|
TARGET = mapdemo
|
||||||
DEPENDPATH += .
|
DEPENDPATH += .
|
||||||
INCLUDEPATH += .
|
INCLUDEPATH += .
|
||||||
|
QT += concurrent widgets
|
||||||
|
|
||||||
# Input
|
# Input
|
||||||
SOURCES += main.cpp
|
SOURCES += main.cpp
|
||||||
@ -13,6 +14,4 @@ sources.files = $$SOURCES $$HEADERS $$FORMS $$RESOURCES *.pro *.png
|
|||||||
sources.path = $$[QT_INSTALL_EXAMPLES]/qtbase/qtconcurrent/map
|
sources.path = $$[QT_INSTALL_EXAMPLES]/qtbase/qtconcurrent/map
|
||||||
INSTALLS += target sources
|
INSTALLS += target sources
|
||||||
|
|
||||||
QT += widgets
|
|
||||||
|
|
||||||
simulator: warning(This example does not work on Simulator platform)
|
simulator: warning(This example does not work on Simulator platform)
|
||||||
|
@ -39,6 +39,7 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#include <QtWidgets>
|
#include <QtWidgets>
|
||||||
|
#include <QtConcurrent>
|
||||||
|
|
||||||
#ifndef QT_NO_CONCURRENT
|
#ifndef QT_NO_CONCURRENT
|
||||||
|
|
||||||
|
@ -12,6 +12,6 @@ sources.files = $$SOURCES $$HEADERS $$FORMS $$RESOURCES *.pro *.png
|
|||||||
sources.path = $$[QT_INSTALL_EXAMPLES]/qtbase/qtconcurrent/progressdialog
|
sources.path = $$[QT_INSTALL_EXAMPLES]/qtbase/qtconcurrent/progressdialog
|
||||||
INSTALLS += target sources
|
INSTALLS += target sources
|
||||||
|
|
||||||
QT += widgets
|
QT += concurrent widgets
|
||||||
|
|
||||||
simulator: warning(This example does not work on Simulator platform)
|
simulator: warning(This example does not work on Simulator platform)
|
||||||
|
@ -12,6 +12,6 @@ sources.files = $$SOURCES $$HEADERS $$FORMS $$RESOURCES *.pro *.png
|
|||||||
sources.path = $$[QT_INSTALL_EXAMPLES]/qtbase/qtconcurrent/runfunction
|
sources.path = $$[QT_INSTALL_EXAMPLES]/qtbase/qtconcurrent/runfunction
|
||||||
INSTALLS += target sources
|
INSTALLS += target sources
|
||||||
|
|
||||||
QT += widgets
|
QT += concurrent widgets
|
||||||
|
|
||||||
simulator: warning(This example does not work on Simulator platform)
|
simulator: warning(This example does not work on Simulator platform)
|
||||||
|
@ -12,6 +12,6 @@ sources.files = $$SOURCES $$HEADERS $$FORMS $$RESOURCES *.pro *.png
|
|||||||
sources.path = $$[QT_INSTALL_EXAMPLES]/qtbase/qtconcurrent/wordcount
|
sources.path = $$[QT_INSTALL_EXAMPLES]/qtbase/qtconcurrent/wordcount
|
||||||
INSTALLS += target sources
|
INSTALLS += target sources
|
||||||
|
|
||||||
QT += widgets
|
QT += concurrent widgets
|
||||||
|
|
||||||
simulator: warning(This example does not work on Simulator platform)
|
simulator: warning(This example does not work on Simulator platform)
|
||||||
|
@ -39,6 +39,8 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#include <QtCore>
|
#include <QtCore>
|
||||||
|
#include <QtConcurrent>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
says hello from main thread and secondary thread using QtConcurrent
|
says hello from main thread and secondary thread using QtConcurrent
|
||||||
*/
|
*/
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
QT -= gui
|
QT -= gui
|
||||||
|
QT += concurrent
|
||||||
|
|
||||||
CONFIG += console
|
CONFIG += console
|
||||||
CONFIG -= app_bundle
|
CONFIG -= app_bundle
|
||||||
|
59
src/concurrent/concurrent.pro
Normal file
59
src/concurrent/concurrent.pro
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
TARGET = QtConcurrent
|
||||||
|
QPRO_PWD = $$PWD
|
||||||
|
QT = core-private
|
||||||
|
|
||||||
|
CONFIG += module
|
||||||
|
MODULE_PRI = ../modules/qt_concurrent.pri
|
||||||
|
|
||||||
|
DEFINES += QT_BUILD_CONCURRENT_LIB QT_NO_USING_NAMESPACE
|
||||||
|
win32-msvc*|win32-icc:QMAKE_LFLAGS += /BASE:0x66000000
|
||||||
|
|
||||||
|
unix|win32-g++*:QMAKE_PKGCONFIG_REQUIRES = QtCore
|
||||||
|
|
||||||
|
load(qt_module_config)
|
||||||
|
|
||||||
|
HEADERS += $$QT_SOURCE_TREE/src/xml/qtconcurrentversion.h
|
||||||
|
|
||||||
|
PRECOMPILED_HEADER = ../corelib/global/qt_pch.h
|
||||||
|
|
||||||
|
SOURCES += \
|
||||||
|
qfuture.cpp \
|
||||||
|
qfutureinterface.cpp \
|
||||||
|
qfuturesynchronizer.cpp \
|
||||||
|
qfuturewatcher.cpp \
|
||||||
|
qtconcurrentfilter.cpp \
|
||||||
|
qtconcurrentmap.cpp \
|
||||||
|
qtconcurrentresultstore.cpp \
|
||||||
|
qtconcurrentthreadengine.cpp \
|
||||||
|
qtconcurrentiteratekernel.cpp \
|
||||||
|
qtconcurrentexception.cpp
|
||||||
|
|
||||||
|
HEADERS += \
|
||||||
|
qfuture.h \
|
||||||
|
qfutureinterface.h \
|
||||||
|
qfuturesynchronizer.h \
|
||||||
|
qfuturewatcher.h \
|
||||||
|
qtconcurrentcompilertest.h \
|
||||||
|
qtconcurrentexception.h \
|
||||||
|
qtconcurrentfilter.h \
|
||||||
|
qtconcurrentfilterkernel.h \
|
||||||
|
qtconcurrentfunctionwrappers.h \
|
||||||
|
qtconcurrentiteratekernel.h \
|
||||||
|
qtconcurrentmap.h \
|
||||||
|
qtconcurrentmapkernel.h \
|
||||||
|
qtconcurrentmedian.h \
|
||||||
|
qtconcurrentreducekernel.h \
|
||||||
|
qtconcurrentresultstore.h \
|
||||||
|
qtconcurrentrun.h \
|
||||||
|
qtconcurrentrunbase.h \
|
||||||
|
qtconcurrentstoredfunctioncall.h \
|
||||||
|
qtconcurrentthreadengine.h
|
||||||
|
|
||||||
|
# private headers
|
||||||
|
HEADERS += \
|
||||||
|
qfutureinterface_p.h \
|
||||||
|
qfuturewatcher_p.h
|
||||||
|
|
||||||
|
contains(QT_CONFIG, clock-gettime) {
|
||||||
|
linux-*|hpux-*|solaris-*:LIBS *= -lrt
|
||||||
|
}
|
@ -46,9 +46,9 @@
|
|||||||
|
|
||||||
#ifndef QT_NO_QFUTURE
|
#ifndef QT_NO_QFUTURE
|
||||||
|
|
||||||
#include <QtCore/qfutureinterface.h>
|
#include <QtConcurrent/qfutureinterface.h>
|
||||||
#include <QtCore/qstring.h>
|
#include <QtCore/qstring.h>
|
||||||
#include <QtCore/qtconcurrentcompilertest.h>
|
#include <QtConcurrent/qtconcurrentcompilertest.h>
|
||||||
|
|
||||||
QT_BEGIN_HEADER
|
QT_BEGIN_HEADER
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
@ -48,8 +48,8 @@
|
|||||||
#ifndef QT_NO_QFUTURE
|
#ifndef QT_NO_QFUTURE
|
||||||
|
|
||||||
#include <QtCore/qmutex.h>
|
#include <QtCore/qmutex.h>
|
||||||
#include <QtCore/qtconcurrentexception.h>
|
#include <QtConcurrent/qtconcurrentexception.h>
|
||||||
#include <QtCore/qtconcurrentresultstore.h>
|
#include <QtConcurrent/qtconcurrentresultstore.h>
|
||||||
|
|
||||||
QT_BEGIN_HEADER
|
QT_BEGIN_HEADER
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
@ -42,7 +42,7 @@
|
|||||||
#ifndef QFUTRUESYNCHRONIZER_H
|
#ifndef QFUTRUESYNCHRONIZER_H
|
||||||
#define QFUTRUESYNCHRONIZER_H
|
#define QFUTRUESYNCHRONIZER_H
|
||||||
|
|
||||||
#include <QtCore/qfuture.h>
|
#include <QtConcurrent/qfuture.h>
|
||||||
|
|
||||||
#ifndef QT_NO_CONCURRENT
|
#ifndef QT_NO_CONCURRENT
|
||||||
|
|
@ -42,7 +42,7 @@
|
|||||||
#ifndef QFUTUREWATCHER_H
|
#ifndef QFUTUREWATCHER_H
|
||||||
#define QFUTUREWATCHER_H
|
#define QFUTUREWATCHER_H
|
||||||
|
|
||||||
#include <QtCore/qfuture.h>
|
#include <QtConcurrent/qfuture.h>
|
||||||
|
|
||||||
#ifndef QT_NO_QFUTURE
|
#ifndef QT_NO_QFUTURE
|
||||||
|
|
@ -46,8 +46,8 @@
|
|||||||
|
|
||||||
#ifndef QT_NO_CONCURRENT
|
#ifndef QT_NO_CONCURRENT
|
||||||
|
|
||||||
#include <QtCore/qtconcurrentfilterkernel.h>
|
#include <QtConcurrent/qtconcurrentfilterkernel.h>
|
||||||
#include <QtCore/qtconcurrentfunctionwrappers.h>
|
#include <QtConcurrent/qtconcurrentfunctionwrappers.h>
|
||||||
|
|
||||||
QT_BEGIN_HEADER
|
QT_BEGIN_HEADER
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
@ -46,9 +46,9 @@
|
|||||||
|
|
||||||
#ifndef QT_NO_CONCURRENT
|
#ifndef QT_NO_CONCURRENT
|
||||||
|
|
||||||
#include <QtCore/qtconcurrentiteratekernel.h>
|
#include <QtConcurrent/qtconcurrentiteratekernel.h>
|
||||||
#include <QtCore/qtconcurrentmapkernel.h>
|
#include <QtConcurrent/qtconcurrentmapkernel.h>
|
||||||
#include <QtCore/qtconcurrentreducekernel.h>
|
#include <QtConcurrent/qtconcurrentreducekernel.h>
|
||||||
|
|
||||||
QT_BEGIN_HEADER
|
QT_BEGIN_HEADER
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
@ -47,8 +47,8 @@
|
|||||||
#ifndef QT_NO_CONCURRENT
|
#ifndef QT_NO_CONCURRENT
|
||||||
|
|
||||||
#include <QtCore/qatomic.h>
|
#include <QtCore/qatomic.h>
|
||||||
#include <QtCore/qtconcurrentmedian.h>
|
#include <QtConcurrent/qtconcurrentmedian.h>
|
||||||
#include <QtCore/qtconcurrentthreadengine.h>
|
#include <QtConcurrent/qtconcurrentthreadengine.h>
|
||||||
|
|
||||||
#ifndef QT_NO_STL
|
#ifndef QT_NO_STL
|
||||||
# include <iterator>
|
# include <iterator>
|
@ -46,9 +46,9 @@
|
|||||||
|
|
||||||
#ifndef QT_NO_CONCURRENT
|
#ifndef QT_NO_CONCURRENT
|
||||||
|
|
||||||
#include <QtCore/qtconcurrentmapkernel.h>
|
#include <QtConcurrent/qtconcurrentmapkernel.h>
|
||||||
#include <QtCore/qtconcurrentreducekernel.h>
|
#include <QtConcurrent/qtconcurrentreducekernel.h>
|
||||||
#include <QtCore/qtconcurrentfunctionwrappers.h>
|
#include <QtConcurrent/qtconcurrentfunctionwrappers.h>
|
||||||
#include <QtCore/qstringlist.h>
|
#include <QtCore/qstringlist.h>
|
||||||
|
|
||||||
QT_BEGIN_HEADER
|
QT_BEGIN_HEADER
|
@ -46,8 +46,8 @@
|
|||||||
|
|
||||||
#ifndef QT_NO_CONCURRENT
|
#ifndef QT_NO_CONCURRENT
|
||||||
|
|
||||||
#include <QtCore/qtconcurrentiteratekernel.h>
|
#include <QtConcurrent/qtconcurrentiteratekernel.h>
|
||||||
#include <QtCore/qtconcurrentreducekernel.h>
|
#include <QtConcurrent/qtconcurrentreducekernel.h>
|
||||||
|
|
||||||
QT_BEGIN_HEADER
|
QT_BEGIN_HEADER
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
@ -47,8 +47,8 @@
|
|||||||
|
|
||||||
#ifndef QT_NO_CONCURRENT
|
#ifndef QT_NO_CONCURRENT
|
||||||
|
|
||||||
#include <QtCore/qtconcurrentrunbase.h>
|
#include <QtConcurrent/qtconcurrentrunbase.h>
|
||||||
#include <QtCore/qtconcurrentstoredfunctioncall.h>
|
#include <QtConcurrent/qtconcurrentstoredfunctioncall.h>
|
||||||
|
|
||||||
QT_BEGIN_HEADER
|
QT_BEGIN_HEADER
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
@ -46,7 +46,7 @@
|
|||||||
|
|
||||||
#ifndef QT_NO_CONCURRENT
|
#ifndef QT_NO_CONCURRENT
|
||||||
|
|
||||||
#include <QtCore/qfuture.h>
|
#include <QtConcurrent/qfuture.h>
|
||||||
#include <QtCore/qrunnable.h>
|
#include <QtCore/qrunnable.h>
|
||||||
#include <QtCore/qthreadpool.h>
|
#include <QtCore/qthreadpool.h>
|
||||||
|
|
@ -46,7 +46,7 @@
|
|||||||
#include <QtCore/qglobal.h>
|
#include <QtCore/qglobal.h>
|
||||||
|
|
||||||
#ifndef QT_NO_CONCURRENT
|
#ifndef QT_NO_CONCURRENT
|
||||||
#include <QtCore/qtconcurrentrunbase.h>
|
#include <QtConcurrent/qtconcurrentrunbase.h>
|
||||||
|
|
||||||
QT_BEGIN_HEADER
|
QT_BEGIN_HEADER
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
@ -47,9 +47,9 @@
|
|||||||
#ifndef QT_NO_CONCURRENT
|
#ifndef QT_NO_CONCURRENT
|
||||||
|
|
||||||
#include <QtCore/qthreadpool.h>
|
#include <QtCore/qthreadpool.h>
|
||||||
#include <QtCore/qfuture.h>
|
#include <QtConcurrent/qfuture.h>
|
||||||
#include <QtCore/qdebug.h>
|
#include <QtCore/qdebug.h>
|
||||||
#include <QtCore/qtconcurrentexception.h>
|
#include <QtConcurrent/qtconcurrentexception.h>
|
||||||
#include <QtCore/qwaitcondition.h>
|
#include <QtCore/qwaitcondition.h>
|
||||||
#include <QtCore/qatomic.h>
|
#include <QtCore/qatomic.h>
|
||||||
#include <QtCore/qsemaphore.h>
|
#include <QtCore/qsemaphore.h>
|
@ -1,42 +0,0 @@
|
|||||||
SOURCES += \
|
|
||||||
concurrent/qfuture.cpp \
|
|
||||||
concurrent/qfutureinterface.cpp \
|
|
||||||
concurrent/qfuturesynchronizer.cpp \
|
|
||||||
concurrent/qfuturewatcher.cpp \
|
|
||||||
concurrent/qrunnable.cpp \
|
|
||||||
concurrent/qtconcurrentfilter.cpp \
|
|
||||||
concurrent/qtconcurrentmap.cpp \
|
|
||||||
concurrent/qtconcurrentresultstore.cpp \
|
|
||||||
concurrent/qtconcurrentthreadengine.cpp \
|
|
||||||
concurrent/qtconcurrentiteratekernel.cpp \
|
|
||||||
concurrent/qtconcurrentexception.cpp \
|
|
||||||
concurrent/qthreadpool.cpp
|
|
||||||
|
|
||||||
HEADERS += \
|
|
||||||
concurrent/qfuture.h \
|
|
||||||
concurrent/qfutureinterface.h \
|
|
||||||
concurrent/qfuturesynchronizer.h \
|
|
||||||
concurrent/qfuturewatcher.h \
|
|
||||||
concurrent/qrunnable.h \
|
|
||||||
concurrent/qtconcurrentcompilertest.h \
|
|
||||||
concurrent/qtconcurrentexception.h \
|
|
||||||
concurrent/qtconcurrentfilter.h \
|
|
||||||
concurrent/qtconcurrentfilterkernel.h \
|
|
||||||
concurrent/qtconcurrentfunctionwrappers.h \
|
|
||||||
concurrent/qtconcurrentiteratekernel.h \
|
|
||||||
concurrent/qtconcurrentmap.h \
|
|
||||||
concurrent/qtconcurrentmapkernel.h \
|
|
||||||
concurrent/qtconcurrentmedian.h \
|
|
||||||
concurrent/qtconcurrentreducekernel.h \
|
|
||||||
concurrent/qtconcurrentresultstore.h \
|
|
||||||
concurrent/qtconcurrentrun.h \
|
|
||||||
concurrent/qtconcurrentrunbase.h \
|
|
||||||
concurrent/qtconcurrentstoredfunctioncall.h \
|
|
||||||
concurrent/qtconcurrentthreadengine.h \
|
|
||||||
concurrent/qthreadpool.h
|
|
||||||
|
|
||||||
# private headers
|
|
||||||
HEADERS += \
|
|
||||||
concurrent/qfutureinterface_p.h \
|
|
||||||
concurrent/qfuturewatcher_p.h \
|
|
||||||
concurrent/qthreadpool_p.h
|
|
@ -18,7 +18,6 @@ HEADERS += $$QT_SOURCE_TREE/src/corelib/qtcoreversion.h
|
|||||||
|
|
||||||
include(animation/animation.pri)
|
include(animation/animation.pri)
|
||||||
include(arch/arch.pri)
|
include(arch/arch.pri)
|
||||||
include(concurrent/concurrent.pri)
|
|
||||||
include(global/global.pri)
|
include(global/global.pri)
|
||||||
include(thread/thread.pri)
|
include(thread/thread.pri)
|
||||||
include(tools/tools.pri)
|
include(tools/tools.pri)
|
||||||
|
@ -1326,6 +1326,11 @@ class QDataStream;
|
|||||||
# define Q_DBUS_EXPORT Q_DECL_IMPORT
|
# define Q_DBUS_EXPORT Q_DECL_IMPORT
|
||||||
# endif
|
# endif
|
||||||
# define Q_TEMPLATEDLL
|
# define Q_TEMPLATEDLL
|
||||||
|
# if defined(QT_BUILD_CONCURRENT_LIB)
|
||||||
|
# define Q_CONCURRENT_EXPORT Q_DECL_EXPORT
|
||||||
|
# else
|
||||||
|
# define Q_CONCURRENT_EXPORT Q_DECL_IMPORT
|
||||||
|
# endif
|
||||||
# elif defined(QT_DLL) /* use a Qt DLL library */
|
# elif defined(QT_DLL) /* use a Qt DLL library */
|
||||||
# define Q_CORE_EXPORT Q_DECL_IMPORT
|
# define Q_CORE_EXPORT Q_DECL_IMPORT
|
||||||
# define Q_GUI_EXPORT Q_DECL_IMPORT
|
# define Q_GUI_EXPORT Q_DECL_IMPORT
|
||||||
@ -1347,6 +1352,7 @@ class QDataStream;
|
|||||||
# define Q_SCRIPTTOOLS_EXPORT Q_DECL_IMPORT
|
# define Q_SCRIPTTOOLS_EXPORT Q_DECL_IMPORT
|
||||||
# define Q_COMPAT_EXPORT Q_DECL_IMPORT
|
# define Q_COMPAT_EXPORT Q_DECL_IMPORT
|
||||||
# define Q_DBUS_EXPORT Q_DECL_IMPORT
|
# define Q_DBUS_EXPORT Q_DECL_IMPORT
|
||||||
|
# define Q_CONCURRENT_EXPORT Q_DECL_IMPORT
|
||||||
# define Q_TEMPLATEDLL
|
# define Q_TEMPLATEDLL
|
||||||
# endif
|
# endif
|
||||||
# define Q_NO_DECLARED_NOT_DEFINED
|
# define Q_NO_DECLARED_NOT_DEFINED
|
||||||
@ -1380,6 +1386,7 @@ class QDataStream;
|
|||||||
# define Q_SCRIPTTOOLS_EXPORT Q_DECL_EXPORT
|
# define Q_SCRIPTTOOLS_EXPORT Q_DECL_EXPORT
|
||||||
# define Q_COMPAT_EXPORT Q_DECL_EXPORT
|
# define Q_COMPAT_EXPORT Q_DECL_EXPORT
|
||||||
# define Q_DBUS_EXPORT Q_DECL_EXPORT
|
# define Q_DBUS_EXPORT Q_DECL_EXPORT
|
||||||
|
# define Q_CONCURRENT_EXPORT Q_DECL_EXPORT
|
||||||
# else
|
# else
|
||||||
# define Q_CORE_EXPORT
|
# define Q_CORE_EXPORT
|
||||||
# define Q_GUI_EXPORT
|
# define Q_GUI_EXPORT
|
||||||
@ -1400,6 +1407,7 @@ class QDataStream;
|
|||||||
# define Q_SCRIPTTOOLS_EXPORT
|
# define Q_SCRIPTTOOLS_EXPORT
|
||||||
# define Q_COMPAT_EXPORT
|
# define Q_COMPAT_EXPORT
|
||||||
# define Q_DBUS_EXPORT
|
# define Q_DBUS_EXPORT
|
||||||
|
# define Q_CONCURRENT_EXPORT
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -593,7 +593,6 @@ QCoreApplication::~QCoreApplication()
|
|||||||
QCoreApplicationPrivate::is_app_running = false;
|
QCoreApplicationPrivate::is_app_running = false;
|
||||||
|
|
||||||
#if !defined(QT_NO_THREAD)
|
#if !defined(QT_NO_THREAD)
|
||||||
#if !defined(QT_NO_CONCURRENT)
|
|
||||||
// Synchronize and stop the global thread pool threads.
|
// Synchronize and stop the global thread pool threads.
|
||||||
QThreadPool *globalThreadPool = 0;
|
QThreadPool *globalThreadPool = 0;
|
||||||
QT_TRY {
|
QT_TRY {
|
||||||
@ -603,7 +602,6 @@ QCoreApplication::~QCoreApplication()
|
|||||||
}
|
}
|
||||||
if (globalThreadPool)
|
if (globalThreadPool)
|
||||||
globalThreadPool->waitForDone();
|
globalThreadPool->waitForDone();
|
||||||
#endif
|
|
||||||
QThread::cleanup();
|
QThread::cleanup();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -65,7 +65,7 @@
|
|||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
|
|
||||||
class QThreadPoolThread;
|
class QThreadPoolThread;
|
||||||
class QThreadPoolPrivate : public QObjectPrivate
|
class Q_CORE_EXPORT QThreadPoolPrivate : public QObjectPrivate
|
||||||
{
|
{
|
||||||
Q_DECLARE_PUBLIC(QThreadPool)
|
Q_DECLARE_PUBLIC(QThreadPool)
|
||||||
friend class QThreadPoolThread;
|
friend class QThreadPoolThread;
|
@ -2,9 +2,11 @@
|
|||||||
|
|
||||||
# public headers
|
# public headers
|
||||||
HEADERS += thread/qmutex.h \
|
HEADERS += thread/qmutex.h \
|
||||||
|
thread/qrunnable.h \
|
||||||
thread/qreadwritelock.h \
|
thread/qreadwritelock.h \
|
||||||
thread/qsemaphore.h \
|
thread/qsemaphore.h \
|
||||||
thread/qthread.h \
|
thread/qthread.h \
|
||||||
|
thread/qthreadpool.h \
|
||||||
thread/qthreadstorage.h \
|
thread/qthreadstorage.h \
|
||||||
thread/qwaitcondition.h \
|
thread/qwaitcondition.h \
|
||||||
thread/qatomic.h \
|
thread/qatomic.h \
|
||||||
@ -17,14 +19,17 @@ HEADERS += thread/qmutex_p.h \
|
|||||||
thread/qmutexpool_p.h \
|
thread/qmutexpool_p.h \
|
||||||
thread/qorderedmutexlocker_p.h \
|
thread/qorderedmutexlocker_p.h \
|
||||||
thread/qreadwritelock_p.h \
|
thread/qreadwritelock_p.h \
|
||||||
thread/qthread_p.h
|
thread/qthread_p.h \
|
||||||
|
thread/qthreadpool_p.h
|
||||||
|
|
||||||
SOURCES += thread/qatomic.cpp \
|
SOURCES += thread/qatomic.cpp \
|
||||||
thread/qmutex.cpp \
|
thread/qmutex.cpp \
|
||||||
thread/qreadwritelock.cpp \
|
thread/qreadwritelock.cpp \
|
||||||
|
thread/qrunnable.cpp \
|
||||||
thread/qmutexpool.cpp \
|
thread/qmutexpool.cpp \
|
||||||
thread/qsemaphore.cpp \
|
thread/qsemaphore.cpp \
|
||||||
thread/qthread.cpp \
|
thread/qthread.cpp \
|
||||||
|
thread/qthreadpool.cpp \
|
||||||
thread/qthreadstorage.cpp
|
thread/qthreadstorage.cpp
|
||||||
|
|
||||||
unix:SOURCES += thread/qthread_unix.cpp \
|
unix:SOURCES += thread/qthread_unix.cpp \
|
||||||
|
15
src/modules/qt_concurrent.pri
Normal file
15
src/modules/qt_concurrent.pri
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
QT.concurrent.VERSION = 5.0.0
|
||||||
|
QT.concurrent.MAJOR_VERSION = 5
|
||||||
|
QT.concurrent.MINOR_VERSION = 0
|
||||||
|
QT.concurrent.PATCH_VERSION = 0
|
||||||
|
|
||||||
|
QT.concurrent.name = QtConcurrent
|
||||||
|
QT.concurrent.bins = $$QT_MODULE_BIN_BASE
|
||||||
|
QT.concurrent.includes = $$QT_MODULE_INCLUDE_BASE/QtConcurrent
|
||||||
|
QT.concurrent.private_includes = $$QT_MODULE_INCLUDE_BASE/QtConcurrent/$$QT.concurrent.VERSION
|
||||||
|
QT.concurrent.sources = $$QT_MODULE_BASE/src/concurrent
|
||||||
|
QT.concurrent.libs = $$QT_MODULE_LIB_BASE
|
||||||
|
QT.concurrent.plugins = $$QT_MODULE_PLUGIN_BASE
|
||||||
|
QT.concurrent.imports = $$QT_MODULE_IMPORT_BASE
|
||||||
|
QT.concurrent.depends = core
|
||||||
|
QT.concurrent.DEFINES = QT_CONCURRENT_LIB
|
@ -8,6 +8,7 @@ SRC_SUBDIRS += src_corelib
|
|||||||
SRC_SUBDIRS += src_network src_sql src_gui src_xml src_widgets src_printsupport src_testlib src_platformsupport
|
SRC_SUBDIRS += src_network src_sql src_gui src_xml src_widgets src_printsupport src_testlib src_platformsupport
|
||||||
nacl: SRC_SUBDIRS -= src_network src_testlib
|
nacl: SRC_SUBDIRS -= src_network src_testlib
|
||||||
contains(QT_CONFIG, dbus):SRC_SUBDIRS += src_dbus
|
contains(QT_CONFIG, dbus):SRC_SUBDIRS += src_dbus
|
||||||
|
contains(QT_CONFIG, concurrent):SRC_SUBDIRS += src_concurrent
|
||||||
|
|
||||||
contains(QT_CONFIG, no-gui): SRC_SUBDIRS -= src_gui
|
contains(QT_CONFIG, no-gui): SRC_SUBDIRS -= src_gui
|
||||||
|
|
||||||
@ -40,6 +41,8 @@ src_testlib.subdir = $$QT_SOURCE_TREE/src/testlib
|
|||||||
src_testlib.target = sub-testlib
|
src_testlib.target = sub-testlib
|
||||||
src_platformsupport.subdir = $$QT_SOURCE_TREE/src/platformsupport
|
src_platformsupport.subdir = $$QT_SOURCE_TREE/src/platformsupport
|
||||||
src_platformsupport.target = sub-platformsupport
|
src_platformsupport.target = sub-platformsupport
|
||||||
|
src_concurrent.subdir = $$QT_SOURCE_TREE/src/concurrent
|
||||||
|
src_concurrent.target = sub-concurrent
|
||||||
|
|
||||||
|
|
||||||
#CONFIG += ordered
|
#CONFIG += ordered
|
||||||
@ -50,6 +53,7 @@ src_platformsupport.target = sub-platformsupport
|
|||||||
src_platformsupport.depends = src_corelib src_gui src_network
|
src_platformsupport.depends = src_corelib src_gui src_network
|
||||||
src_widgets.depends = src_corelib src_gui src_tools_uic
|
src_widgets.depends = src_corelib src_gui src_tools_uic
|
||||||
src_xml.depends = src_corelib
|
src_xml.depends = src_corelib
|
||||||
|
src_concurrent.depends = src_corelib
|
||||||
src_dbus.depends = src_corelib
|
src_dbus.depends = src_corelib
|
||||||
src_network.depends = src_corelib
|
src_network.depends = src_corelib
|
||||||
src_opengl.depends = src_gui src_widgets
|
src_opengl.depends = src_gui src_widgets
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
"QtNetwork" => "$basedir/src/network",
|
"QtNetwork" => "$basedir/src/network",
|
||||||
"QtTest" => "$basedir/src/testlib",
|
"QtTest" => "$basedir/src/testlib",
|
||||||
"QtDBus" => "$basedir/src/dbus",
|
"QtDBus" => "$basedir/src/dbus",
|
||||||
|
"QtConcurrent" => "$basedir/src/concurrent",
|
||||||
"QtPlatformSupport" => "$basedir/src/platformsupport",
|
"QtPlatformSupport" => "$basedir/src/platformsupport",
|
||||||
);
|
);
|
||||||
%moduleheaders = ( # restrict the module headers to those found in relative path
|
%moduleheaders = ( # restrict the module headers to those found in relative path
|
||||||
@ -40,6 +41,7 @@
|
|||||||
"qtxmlversion.h" => "QtXmlVersion",
|
"qtxmlversion.h" => "QtXmlVersion",
|
||||||
"qtwidgetsversion.h" => "QtWidgetsVersion",
|
"qtwidgetsversion.h" => "QtWidgetsVersion",
|
||||||
"qtprintsupportversion.h" => "QtPrintSupportVersion",
|
"qtprintsupportversion.h" => "QtPrintSupportVersion",
|
||||||
|
"qtconcurrentversion.h" => "QtConcurrentVersion",
|
||||||
"qtplatformsupportversion.h" => "QtPlatformSupportVersion",
|
"qtplatformsupportversion.h" => "QtPlatformSupportVersion",
|
||||||
);
|
);
|
||||||
%mastercontent = (
|
%mastercontent = (
|
||||||
@ -50,6 +52,7 @@
|
|||||||
"network" => "#include <QtNetwork/QtNetwork>\n",
|
"network" => "#include <QtNetwork/QtNetwork>\n",
|
||||||
"opengl" => "#include <QtOpenGL/QtOpenGL>\n",
|
"opengl" => "#include <QtOpenGL/QtOpenGL>\n",
|
||||||
"xml" => "#include <QtXml/QtXml>\n",
|
"xml" => "#include <QtXml/QtXml>\n",
|
||||||
|
"concurrent" => "#include <QtConcurrent/QtConcurrent>\n",
|
||||||
);
|
);
|
||||||
%modulepris = (
|
%modulepris = (
|
||||||
"QtCore" => "$basedir/src/modules/qt_core.pri",
|
"QtCore" => "$basedir/src/modules/qt_core.pri",
|
||||||
@ -62,6 +65,7 @@
|
|||||||
"QtSql" => "$basedir/src/modules/qt_sql.pri",
|
"QtSql" => "$basedir/src/modules/qt_sql.pri",
|
||||||
"QtTest" => "$basedir/src/modules/qt_testlib.pri",
|
"QtTest" => "$basedir/src/modules/qt_testlib.pri",
|
||||||
"QtXml" => "$basedir/src/modules/qt_xml.pri",
|
"QtXml" => "$basedir/src/modules/qt_xml.pri",
|
||||||
|
"QtConcurrent" => "$basedir/src/modules/qt_concurrent.pri",
|
||||||
"QtPlatformSupport" => "$basedir/src/modules/qt_platformsupport.pri",
|
"QtPlatformSupport" => "$basedir/src/modules/qt_platformsupport.pri",
|
||||||
);
|
);
|
||||||
%explicitheaders = (
|
%explicitheaders = (
|
||||||
|
@ -10,6 +10,7 @@ SUBDIRS += \
|
|||||||
testlib \
|
testlib \
|
||||||
tools \
|
tools \
|
||||||
xml \
|
xml \
|
||||||
|
concurrent \
|
||||||
other \
|
other \
|
||||||
widgets \
|
widgets \
|
||||||
|
|
||||||
@ -21,3 +22,6 @@ cross_compile: SUBDIRS -= tools
|
|||||||
mac {
|
mac {
|
||||||
network.CONFIG += no_check_target
|
network.CONFIG += no_check_target
|
||||||
}
|
}
|
||||||
|
|
||||||
|
!contains(QT_CONFIG, concurrent): SUBDIRS -= concurrent
|
||||||
|
|
||||||
|
@ -8,6 +8,5 @@ SUBDIRS=\
|
|||||||
qtconcurrentmap \
|
qtconcurrentmap \
|
||||||
qtconcurrentresultstore \
|
qtconcurrentresultstore \
|
||||||
qtconcurrentrun \
|
qtconcurrentrun \
|
||||||
qtconcurrentthreadengine \
|
qtconcurrentthreadengine
|
||||||
qthreadpool
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
|||||||
CONFIG += testcase parallel_test
|
CONFIG += testcase parallel_test
|
||||||
TARGET = tst_qfuture
|
TARGET = tst_qfuture
|
||||||
QT = core-private testlib
|
QT = concurrent-private testlib concurrent
|
||||||
SOURCES = tst_qfuture.cpp
|
SOURCES = tst_qfuture.cpp
|
||||||
DEFINES += QT_STRICT_ITERATORS
|
DEFINES += QT_STRICT_ITERATORS
|
@ -1,4 +1,4 @@
|
|||||||
CONFIG += testcase parallel_test
|
CONFIG += testcase parallel_test
|
||||||
TARGET = tst_qfuturesynchronizer
|
TARGET = tst_qfuturesynchronizer
|
||||||
QT = core testlib
|
QT = core testlib concurrent
|
||||||
SOURCES = tst_qfuturesynchronizer.cpp
|
SOURCES = tst_qfuturesynchronizer.cpp
|
@ -41,8 +41,8 @@
|
|||||||
|
|
||||||
#include <QtTest>
|
#include <QtTest>
|
||||||
|
|
||||||
#include <QtCore/qfuturesynchronizer.h>
|
#include <QtConcurrent/qfuturesynchronizer.h>
|
||||||
#include <QtCore/qfuture.h>
|
#include <QtConcurrent/qfuture.h>
|
||||||
|
|
||||||
class tst_QFutureSynchronizer : public QObject
|
class tst_QFutureSynchronizer : public QObject
|
||||||
{
|
{
|
@ -1,4 +1,4 @@
|
|||||||
CONFIG += testcase parallel_test
|
CONFIG += testcase parallel_test
|
||||||
TARGET = tst_qfuturewatcher
|
TARGET = tst_qfuturewatcher
|
||||||
QT = core-private testlib
|
QT = concurrent-private testlib concurrent
|
||||||
SOURCES = tst_qfuturewatcher.cpp
|
SOURCES = tst_qfuturewatcher.cpp
|
@ -42,10 +42,7 @@
|
|||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QtTest/QtTest>
|
#include <QtTest/QtTest>
|
||||||
|
|
||||||
#include <qfuture.h>
|
#include <QtConcurrent>
|
||||||
#include <qfuturewatcher.h>
|
|
||||||
#include <qtconcurrentrun.h>
|
|
||||||
#include <qtconcurrentmap.h>
|
|
||||||
#include <private/qfutureinterface_p.h>
|
#include <private/qfutureinterface_p.h>
|
||||||
|
|
||||||
using namespace QtConcurrent;
|
using namespace QtConcurrent;
|
@ -1,6 +1,6 @@
|
|||||||
CONFIG += testcase parallel_test
|
CONFIG += testcase parallel_test
|
||||||
TARGET = tst_qtconcurrentfilter
|
TARGET = tst_qtconcurrentfilter
|
||||||
QT = core testlib
|
QT = core testlib concurrent
|
||||||
SOURCES = tst_qtconcurrentfilter.cpp
|
SOURCES = tst_qtconcurrentfilter.cpp
|
||||||
DEFINES += QT_STRICT_ITERATORS
|
DEFINES += QT_STRICT_ITERATORS
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
CONFIG += testcase parallel_test
|
CONFIG += testcase parallel_test
|
||||||
TARGET = tst_qtconcurrentiteratekernel
|
TARGET = tst_qtconcurrentiteratekernel
|
||||||
QT = core testlib
|
QT = core testlib concurrent
|
||||||
SOURCES = tst_qtconcurrentiteratekernel.cpp
|
SOURCES = tst_qtconcurrentiteratekernel.cpp
|
@ -1,5 +1,5 @@
|
|||||||
CONFIG += testcase parallel_test
|
CONFIG += testcase parallel_test
|
||||||
TARGET = tst_qtconcurrentmap
|
TARGET = tst_qtconcurrentmap
|
||||||
QT = core testlib
|
QT = core testlib concurrent
|
||||||
SOURCES = tst_qtconcurrentmap.cpp
|
SOURCES = tst_qtconcurrentmap.cpp
|
||||||
DEFINES += QT_STRICT_ITERATORS
|
DEFINES += QT_STRICT_ITERATORS
|
@ -1,5 +1,5 @@
|
|||||||
CONFIG += testcase parallel_test
|
CONFIG += testcase parallel_test
|
||||||
TARGET = tst_qtconcurrentresultstore
|
TARGET = tst_qtconcurrentresultstore
|
||||||
QT = core-private testlib
|
QT = core-private testlib concurrent
|
||||||
SOURCES = tst_qtconcurrentresultstore.cpp
|
SOURCES = tst_qtconcurrentresultstore.cpp
|
||||||
DEFINES += QT_STRICT_ITERATORS
|
DEFINES += QT_STRICT_ITERATORS
|
@ -1,4 +1,4 @@
|
|||||||
CONFIG += testcase parallel_test
|
CONFIG += testcase parallel_test
|
||||||
TARGET = tst_qtconcurrentrun
|
TARGET = tst_qtconcurrentrun
|
||||||
QT = core testlib
|
QT = core testlib concurrent
|
||||||
SOURCES = tst_qtconcurrentrun.cpp
|
SOURCES = tst_qtconcurrentrun.cpp
|
@ -1,4 +1,4 @@
|
|||||||
CONFIG += testcase parallel_test
|
CONFIG += testcase parallel_test
|
||||||
TARGET = tst_qtconcurrentthreadengine
|
TARGET = tst_qtconcurrentthreadengine
|
||||||
QT = core testlib
|
QT = core testlib concurrent
|
||||||
SOURCES = tst_qtconcurrentthreadengine.cpp
|
SOURCES = tst_qtconcurrentthreadengine.cpp
|
@ -47,7 +47,6 @@
|
|||||||
#include <qtextdocument.h>
|
#include <qtextdocument.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <qprocess.h>
|
#include <qprocess.h>
|
||||||
#include <QtConcurrentMap>
|
|
||||||
#include <QThreadPool>
|
#include <QThreadPool>
|
||||||
|
|
||||||
class tst_QTextCodec : public QObject
|
class tst_QTextCodec : public QObject
|
||||||
@ -55,9 +54,7 @@ class tst_QTextCodec : public QObject
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
#ifndef QT_NO_CONCURRENT
|
|
||||||
void threadSafety();
|
void threadSafety();
|
||||||
#endif
|
|
||||||
|
|
||||||
void toUnicode_data();
|
void toUnicode_data();
|
||||||
void toUnicode();
|
void toUnicode();
|
||||||
@ -1939,48 +1936,75 @@ void tst_QTextCodec::toLocal8Bit()
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static QByteArray loadAndConvert(const QByteArray &codecName)
|
class LoadAndConvert: public QRunnable
|
||||||
{
|
{
|
||||||
QTextCodec *c = QTextCodec::codecForName(codecName);
|
public:
|
||||||
if (!c) {
|
LoadAndConvert(const QByteArray &source, QByteArray *destination)
|
||||||
qWarning() << "WARNING" << codecName << "not found?";
|
: codecName(source), target(destination)
|
||||||
return QByteArray();
|
{}
|
||||||
|
QByteArray codecName;
|
||||||
|
QByteArray *target;
|
||||||
|
void run()
|
||||||
|
{
|
||||||
|
QTextCodec *c = QTextCodec::codecForName(codecName);
|
||||||
|
if (!c) {
|
||||||
|
qWarning() << "WARNING" << codecName << "not found?";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
QString str = QString::fromLatin1(codecName);
|
||||||
|
QByteArray b = c->fromUnicode(str);
|
||||||
|
c->toUnicode(b);
|
||||||
|
*target = codecName;
|
||||||
}
|
}
|
||||||
QString str = QString::fromLatin1(codecName);
|
};
|
||||||
QByteArray b = c->fromUnicode(str);
|
|
||||||
c->toUnicode(b);
|
|
||||||
return codecName;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int loadAndConvertMIB(int mib)
|
class LoadAndConvertMIB: public QRunnable
|
||||||
{
|
{
|
||||||
QTextCodec *c = QTextCodec::codecForMib(mib);
|
public:
|
||||||
if (!c) {
|
LoadAndConvertMIB(int mib, int *target)
|
||||||
qWarning() << "WARNING" << mib << "not found?";
|
: mib(mib), target(target)
|
||||||
return 0;
|
{}
|
||||||
|
int mib;
|
||||||
|
int *target;
|
||||||
|
void run()
|
||||||
|
{
|
||||||
|
QTextCodec *c = QTextCodec::codecForMib(mib);
|
||||||
|
if (!c) {
|
||||||
|
qWarning() << "WARNING" << mib << "not found?";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
QString str = QString::number(mib);
|
||||||
|
QByteArray b = c->fromUnicode(str);
|
||||||
|
c->toUnicode(b);
|
||||||
|
*target = mib;
|
||||||
}
|
}
|
||||||
QString str = QString::number(mib);
|
};
|
||||||
QByteArray b = c->fromUnicode(str);
|
|
||||||
c->toUnicode(b);
|
|
||||||
return mib;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef QT_NO_CONCURRENT
|
|
||||||
void tst_QTextCodec::threadSafety()
|
void tst_QTextCodec::threadSafety()
|
||||||
{
|
{
|
||||||
QList<QByteArray> codecList = QTextCodec::availableCodecs();
|
QList<QByteArray> codecList = QTextCodec::availableCodecs();
|
||||||
QList<int> mibList = QTextCodec::availableMibs();
|
QList<int> mibList = QTextCodec::availableMibs();
|
||||||
QThreadPool::globalInstance()->setMaxThreadCount(12);
|
QThreadPool::globalInstance()->setMaxThreadCount(12);
|
||||||
|
|
||||||
QFuture<QByteArray> res = QtConcurrent::mapped(codecList, loadAndConvert);
|
QVector<QByteArray> res;
|
||||||
|
res.resize(codecList.size());
|
||||||
|
for (int i = 0; i < codecList.size(); ++i) {
|
||||||
|
QThreadPool::globalInstance()->start(new LoadAndConvert(codecList.at(i), &res[i]));
|
||||||
|
}
|
||||||
|
|
||||||
QFuture<int> res2 = QtConcurrent::mapped(mibList, loadAndConvertMIB);
|
QVector<int> res2;
|
||||||
|
res2.resize(mibList.size());
|
||||||
|
for (int i = 0; i < mibList.size(); ++i) {
|
||||||
|
QThreadPool::globalInstance()->start(new LoadAndConvertMIB(mibList.at(i), &res2[i]));
|
||||||
|
}
|
||||||
|
|
||||||
QCOMPARE(res.results(), codecList);
|
// wait for all threads to finish working
|
||||||
QCOMPARE(res2.results(), mibList);
|
QThreadPool::globalInstance()->waitForDone();
|
||||||
|
|
||||||
|
QCOMPARE(res.toList(), codecList);
|
||||||
|
QCOMPARE(res2.toList(), mibList);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
void tst_QTextCodec::invalidNames()
|
void tst_QTextCodec::invalidNames()
|
||||||
{
|
{
|
||||||
|
@ -2,7 +2,6 @@ TEMPLATE=subdirs
|
|||||||
SUBDIRS=\
|
SUBDIRS=\
|
||||||
animation \
|
animation \
|
||||||
codecs \
|
codecs \
|
||||||
concurrent \
|
|
||||||
global \
|
global \
|
||||||
io \
|
io \
|
||||||
itemmodels \
|
itemmodels \
|
||||||
@ -14,4 +13,3 @@ SUBDIRS=\
|
|||||||
tools \
|
tools \
|
||||||
xml
|
xml
|
||||||
|
|
||||||
!contains(QT_CONFIG, concurrent): SUBDIRS -= concurrent
|
|
||||||
|
@ -9,6 +9,7 @@ SUBDIRS=\
|
|||||||
qsemaphore \
|
qsemaphore \
|
||||||
qthread \
|
qthread \
|
||||||
qthreadonce \
|
qthreadonce \
|
||||||
|
qthreadpool \
|
||||||
qthreadstorage \
|
qthreadstorage \
|
||||||
qwaitcondition \
|
qwaitcondition \
|
||||||
qwritelocker
|
qwritelocker
|
||||||
|
Loading…
x
Reference in New Issue
Block a user