summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJørgen Lind <jorgen.lind@nokia.com>2009-10-30 11:20:09 (GMT)
committerJørgen Lind <jorgen.lind@nokia.com>2009-10-30 11:30:28 (GMT)
commitb68cd1df21935fc032a93c7d7bc33fcb77c7b8cd (patch)
tree2b04403216cd5d7181fb4f001964c253415fb7fe
parent9c681ddc3a70b220de5d38de498ab1804ec12d4a (diff)
downloadQt-b68cd1df21935fc032a93c7d7bc33fcb77c7b8cd.zip
Qt-b68cd1df21935fc032a93c7d7bc33fcb77c7b8cd.tar.gz
Qt-b68cd1df21935fc032a93c7d7bc33fcb77c7b8cd.tar.bz2
Reverts bf1a6bb6b3b8c98f6ab402512eb2f1996c2435c7
and removes THREAD from qfeature Reviewed-by: Trust Me
-rw-r--r--src/corelib/global/qconfig-minimal.h3
-rw-r--r--src/corelib/global/qfeatures.h63
-rw-r--r--src/corelib/global/qfeatures.txt15
-rw-r--r--src/corelib/thread/qmutexpool.cpp20
-rw-r--r--src/corelib/thread/qmutexpool_p.h17
-rw-r--r--src/corelib/thread/qthread.cpp24
-rw-r--r--src/corelib/thread/qthread_p.h62
7 files changed, 85 insertions, 119 deletions
diff --git a/src/corelib/global/qconfig-minimal.h b/src/corelib/global/qconfig-minimal.h
index 9cc3057..58565d6 100644
--- a/src/corelib/global/qconfig-minimal.h
+++ b/src/corelib/global/qconfig-minimal.h
@@ -255,9 +255,6 @@
#ifndef QT_NO_TEXTHTMLPARSER
# define QT_NO_TEXTHTMLPARSER
#endif
-#ifndef QT_NO_THREAD
-# define QT_NO_THREAD
-#endif
#ifndef QT_NO_CONCURRENT
# define QT_NO_CONCURRENT
#endif
diff --git a/src/corelib/global/qfeatures.h b/src/corelib/global/qfeatures.h
index 3996180..9b3e817 100644
--- a/src/corelib/global/qfeatures.h
+++ b/src/corelib/global/qfeatures.h
@@ -55,6 +55,9 @@
// Color Names
//#define QT_NO_COLORNAMES
+// QtConcurrent
+//#define QT_NO_CONCURRENT
+
// QCopChannel
//#define QT_NO_COP
@@ -76,6 +79,9 @@
// Effects
//#define QT_NO_EFFECTS
+// QFileSystemWatcher
+//#define QT_NO_FILESYSTEMWATCHER
+
// Freetype Font Engine
//#define QT_NO_FREETYPE
@@ -151,6 +157,9 @@
// QPicture
//#define QT_NO_PICTURE
+// QProcess
+//#define QT_NO_PROCESS
+
// QProgressBar
//#define QT_NO_PROGRESSBAR
@@ -274,9 +283,6 @@
// QTextStream
//#define QT_NO_TEXTSTREAM
-// QThread
-//#define QT_NO_THREAD
-
// QToolTip
//#define QT_NO_TOOLTIP
@@ -301,6 +307,11 @@
//
//#define QT_NO_XMLSTREAM
+// Animation
+#if !defined(QT_NO_ANIMATION) && (defined(QT_NO_PROPERTIES))
+#define QT_NO_ANIMATION
+#endif
+
// QButtonGroup
#if !defined(QT_NO_BUTTONGROUP) && (defined(QT_NO_GROUPBOX))
#define QT_NO_BUTTONGROUP
@@ -316,11 +327,6 @@
#define QT_NO_CODECS
#endif
-// QtConcurrent
-#if !defined(QT_NO_CONCURRENT) && (defined(QT_NO_THREAD))
-#define QT_NO_CONCURRENT
-#endif
-
// QDate/QTime/QDateTime
#if !defined(QT_NO_DATESTRING) && (defined(QT_NO_TEXTDATE))
#define QT_NO_DATESTRING
@@ -331,9 +337,9 @@
#define QT_NO_DIAL
#endif
-// QFileSystemWatcher
-#if !defined(QT_NO_FILESYSTEMWATCHER) && (defined(QT_NO_THREAD))
-#define QT_NO_FILESYSTEMWATCHER
+// QFileSystemModel
+#if !defined(QT_NO_FILESYSTEMMODEL) && (defined(QT_NO_FILESYSTEMWATCHER))
+#define QT_NO_FILESYSTEMMODEL
#endif
// QHostInfo
@@ -371,11 +377,6 @@
#define QT_NO_PHONON_VOLUMEFADEREFFECT
#endif
-// QProcess
-#if !defined(QT_NO_PROCESS) && (defined(QT_NO_THREAD))
-#define QT_NO_PROCESS
-#endif
-
// QProgressDialog
#if !defined(QT_NO_PROGRESSDIALOG) && (defined(QT_NO_PROGRESSBAR))
#define QT_NO_PROGRESSDIALOG
@@ -491,21 +492,11 @@
#define QT_NO_XMLSTREAMWRITER
#endif
-// Animation
-#if !defined(QT_NO_ANIMATION) && (defined(QT_NO_PROPERTIES) || defined(QT_NO_THREAD))
-#define QT_NO_ANIMATION
-#endif
-
// Context menu
#if !defined(QT_NO_CONTEXTMENU) && (defined(QT_NO_MENU))
#define QT_NO_CONTEXTMENU
#endif
-// QFileSystemModel
-#if !defined(QT_NO_FILESYSTEMMODEL) && (defined(QT_NO_FILESYSTEMWATCHER))
-#define QT_NO_FILESYSTEMMODEL
-#endif
-
// File Transfer Protocol
#if !defined(QT_NO_FTP) && (defined(QT_NO_URLINFO) || defined(QT_NO_TEXTDATE))
#define QT_NO_FTP
@@ -796,31 +787,31 @@
#define QT_NO_CUPS
#endif
-// QDockwidget
-#if !defined(QT_NO_DOCKWIDGET) && (defined(QT_NO_RUBBERBAND) || defined(QT_NO_MAINWINDOW))
-#define QT_NO_DOCKWIDGET
-#endif
-
// QDirModel
#if !defined(QT_NO_DIRMODEL) && (defined(QT_NO_ITEMVIEWS) || defined(QT_NO_FILESYSTEMMODEL))
#define QT_NO_DIRMODEL
#endif
+// QDockwidget
+#if !defined(QT_NO_DOCKWIDGET) && (defined(QT_NO_RUBBERBAND) || defined(QT_NO_MAINWINDOW))
+#define QT_NO_DOCKWIDGET
+#endif
+
// QUndoView
#if !defined(QT_NO_UNDOVIEW) && (defined(QT_NO_UNDOSTACK) || defined(QT_NO_LISTVIEW))
#define QT_NO_UNDOVIEW
#endif
-// QGraphicsSvgItem
-#if !defined(QT_NO_GRAPHICSSVGITEM) && (defined(QT_NO_SVGRENDERER) || defined(QT_NO_GRAPHICSVIEW))
-#define QT_NO_GRAPHICSSVGITEM
-#endif
-
// QCompleter
#if !defined(QT_NO_FSCOMPLETER) && (defined(QT_NO_FILESYSTEMMODEL) || defined(QT_NO_COMPLETER))
#define QT_NO_FSCOMPLETER
#endif
+// QGraphicsSvgItem
+#if !defined(QT_NO_GRAPHICSSVGITEM) && (defined(QT_NO_SVGRENDERER) || defined(QT_NO_GRAPHICSVIEW))
+#define QT_NO_GRAPHICSSVGITEM
+#endif
+
// QComboBox
#if !defined(QT_NO_COMBOBOX) && (defined(QT_NO_LINEEDIT) || defined(QT_NO_STANDARDITEMMODEL) || defined(QT_NO_LISTVIEW))
#define QT_NO_COMBOBOX
diff --git a/src/corelib/global/qfeatures.txt b/src/corelib/global/qfeatures.txt
index 543056f..ff34006 100644
--- a/src/corelib/global/qfeatures.txt
+++ b/src/corelib/global/qfeatures.txt
@@ -28,17 +28,10 @@ Requires:
Name: CssParser
SeeAlso: ???
-Feature: THREAD
-Description: Supports multithreaded programming.
-Section: Kernel
-Requires:
-Name: QThread
-SeeAlso: ???
-
Feature: CONCURRENT
Description: Provides a high-level multi-threaded APIs
Section: Kernel
-Requires: THREAD
+Requires:
Name: QtConcurrent
SeeAlso: ???
@@ -195,7 +188,7 @@ SeeAlso: ???
Feature: PROCESS
Description: Supports external process invocation.
Section: File I/O
-Requires: THREAD
+Requires:
Name: QProcess
SeeAlso: ???
@@ -245,7 +238,7 @@ Feature: FILESYSTEMWATCHER
Description: Provides an interface for monitoring files and directories
for modications.
Section: File I/O
-Requires: THREAD
+Requires:
Name: QFileSystemWatcher
SeeAlso: ???
@@ -1166,7 +1159,7 @@ SeeAlso: ???
Feature: ANIMATION
Description: Provides a framework for animations.
Section: Utilities
-Requires: PROPERTIES THREAD
+Requires: PROPERTIES
Name: Animation
SeeAlso: ???
diff --git a/src/corelib/thread/qmutexpool.cpp b/src/corelib/thread/qmutexpool.cpp
index 9f37239..c5c1882 100644
--- a/src/corelib/thread/qmutexpool.cpp
+++ b/src/corelib/thread/qmutexpool.cpp
@@ -42,6 +42,7 @@
#include "qatomic.h"
#include "qmutexpool_p.h"
+#ifndef QT_NO_THREAD
QT_BEGIN_NAMESPACE
@@ -49,7 +50,6 @@ QT_BEGIN_NAMESPACE
// use QMutexpool::instance() in new clode.
Q_CORE_EXPORT QMutexPool *qt_global_mutexpool = 0;
Q_GLOBAL_STATIC_WITH_ARGS(QMutexPool, globalMutexPool, (QMutex::Recursive))
-#ifndef QT_NO_THREAD
/*!
\class QMutexPool
@@ -114,6 +114,15 @@ QMutexPool::~QMutexPool()
mutexes[index] = 0;
}
}
+
+/*!
+ Returns the global QMutexPool instance.
+*/
+QMutexPool *QMutexPool::instance()
+{
+ return globalMutexPool();
+}
+
/*!
Returns a QMutex from the pool. QMutexPool uses the value \a address
to determine which mutex is returned from the pool.
@@ -143,14 +152,7 @@ QMutex *QMutexPool::globalInstanceGet(const void *address)
return 0;
return globalInstance->get(address);
}
-#endif // QT_NO_THREAD
-/*!
- Returns the global QMutexPool instance.
-*/
-QMutexPool *QMutexPool::instance()
-{
- return globalMutexPool();
-}
QT_END_NAMESPACE
+#endif // QT_NO_THREAD
diff --git a/src/corelib/thread/qmutexpool_p.h b/src/corelib/thread/qmutexpool_p.h
index c26711b..3e1bad0 100644
--- a/src/corelib/thread/qmutexpool_p.h
+++ b/src/corelib/thread/qmutexpool_p.h
@@ -57,9 +57,9 @@
#include "QtCore/qmutex.h"
#include "QtCore/qvarlengtharray.h"
+#ifndef QT_NO_THREAD
QT_BEGIN_NAMESPACE
-#ifndef QT_NO_THREAD
class Q_CORE_EXPORT QMutexPool
{
@@ -75,24 +75,11 @@ private:
QVarLengthArray<QAtomicPointer<QMutex>, 131> mutexes;
QMutex::RecursionMode recursionMode;
};
-#else //QT_NO_THREAD
-Q_GLOBAL_STATIC(QMutex, globalMutex)
-class Q_CORE_EXPORT QMutexPool
-{
-public:
- explicit QMutexPool(QMutex::RecursionMode recursionMode = QMutex::NonRecursive, int size = 131){}
- ~QMutexPool(){}
-
- QMutex *get(const void *address){return globalMutex();}
- static QMutexPool *instance();
- static QMutex *globalInstanceGet(const void *address){return globalMutex();}
-};
-
-#endif // QT_NO_THREAD
extern Q_CORE_EXPORT QMutexPool *qt_global_mutexpool;
QT_END_NAMESPACE
+#endif // QT_NO_THREAD
#endif // QMUTEXPOOL_P_H
diff --git a/src/corelib/thread/qthread.cpp b/src/corelib/thread/qthread.cpp
index cf57d33..ac191fe 100644
--- a/src/corelib/thread/qthread.cpp
+++ b/src/corelib/thread/qthread.cpp
@@ -727,16 +727,6 @@ QThread *QThread::currentThread()
return QThreadData::current()->thread;
}
-/*! \internal
- */
-QThread::QThread(QThreadPrivate &dd, QObject *parent)
- : QObject(dd, parent)
-{
- Q_D(QThread);
- // fprintf(stderr, "QThreadData %p taken from private data for thread %p\n", d->data, this);
- d->data->thread = this;
-}
-
QThreadData* QThreadData::current()
{
static QThreadData *data = 0; // reinterpret_cast<QThreadData *>(pthread_getspecific(current_thread_data_key));
@@ -748,13 +738,17 @@ QThreadData* QThreadData::current()
}
return data;
}
-#endif // QT_NO_THREAD
-QThreadData* QThreadData::get2(QThread *thread)
+
+/*! \internal
+ */
+QThread::QThread(QThreadPrivate &dd, QObject *parent)
+ : QObject(dd, parent)
{
- Q_ASSERT_X(thread != 0, "QThread", "internal error");
- return thread->d_func()->data;
+ Q_D(QThread);
+ // fprintf(stderr, "QThreadData %p taken from private data for thread %p\n", d->data, this);
+ d->data->thread = this;
}
-
+#endif // QT_NO_THREAD
QT_END_NAMESPACE
diff --git a/src/corelib/thread/qthread_p.h b/src/corelib/thread/qthread_p.h
index 8c3acdb..af68434 100644
--- a/src/corelib/thread/qthread_p.h
+++ b/src/corelib/thread/qthread_p.h
@@ -111,36 +111,6 @@ public:
{ }
};
-class QThreadData
-{
- QAtomicInt _ref;
-
-public:
- QThreadData(int initialRefCount = 1);
- ~QThreadData();
-
- static QThreadData *current();
- static QThreadData *get2(QThread *thread);
-
- void ref();
- void deref();
-
- QThread *thread;
- bool quitNow;
- int loopLevel;
- QAbstractEventDispatcher *eventDispatcher;
- QStack<QEventLoop *> eventLoops;
- QPostEventList postEventList;
- bool canWait;
- QMap<int, void *> tls;
-
- QMutex mutex;
-
-# ifdef Q_OS_SYMBIAN
- RThread symbian_thread_handle;
-# endif
-};
-
#ifndef QT_NO_THREAD
class QThreadPrivate : public QObjectPrivate
{
@@ -209,6 +179,38 @@ public:
#endif // QT_NO_THREAD
+class QThreadData
+{
+ QAtomicInt _ref;
+
+public:
+ QThreadData(int initialRefCount = 1);
+ ~QThreadData();
+
+ static QThreadData *current();
+ static QThreadData *get2(QThread *thread)
+ { Q_ASSERT_X(thread != 0, "QThread", "internal error"); return thread->d_func()->data; }
+
+
+ void ref();
+ void deref();
+
+ QThread *thread;
+ bool quitNow;
+ int loopLevel;
+ QAbstractEventDispatcher *eventDispatcher;
+ QStack<QEventLoop *> eventLoops;
+ QPostEventList postEventList;
+ bool canWait;
+ QMap<int, void *> tls;
+
+ QMutex mutex;
+
+# ifdef Q_OS_SYMBIAN
+ RThread symbian_thread_handle;
+# endif
+};
+
// thread wrapper for the main() thread
class QAdoptedThread : public QThread
{