summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/corelib/thread/qthreadpool.cpp19
-rw-r--r--src/corelib/thread/qthreadpool.h3
-rw-r--r--src/corelib/thread/qthreadpool_p.h2
3 files changed, 5 insertions, 19 deletions
diff --git a/src/corelib/thread/qthreadpool.cpp b/src/corelib/thread/qthreadpool.cpp
index 870f943a63..7f26dfe326 100644
--- a/src/corelib/thread/qthreadpool.cpp
+++ b/src/corelib/thread/qthreadpool.cpp
@@ -410,8 +410,7 @@ QThreadPool::QThreadPool(QObject *parent)
*/
QThreadPool::~QThreadPool()
{
- d_func()->waitForDone();
- d_func()->reset();
+ waitForDone();
}
/*!
@@ -593,22 +592,10 @@ void QThreadPool::releaseThread()
}
/*!
- Waits for each thread to exit and removes all threads from the thread pool.
-*/
-void QThreadPool::waitForDone()
-{
- Q_D(QThreadPool);
- d->waitForDone();
- d->reset();
-}
-
-/*!
- \overload waitForDone()
- \since 4.8
-
Waits up to \a msecs milliseconds for all threads to exit and removes all
threads from the thread pool. Returns true if all threads were removed;
- otherwise it returns false.
+ otherwise it returns false. If \a msecs is -1 (the default), the timeout
+ is ignored (waits for the last thread to exit).
*/
bool QThreadPool::waitForDone(int msecs)
{
diff --git a/src/corelib/thread/qthreadpool.h b/src/corelib/thread/qthreadpool.h
index 9fc023c56d..dd931713f7 100644
--- a/src/corelib/thread/qthreadpool.h
+++ b/src/corelib/thread/qthreadpool.h
@@ -83,8 +83,7 @@ public:
void reserveThread();
void releaseThread();
- void waitForDone();
- bool waitForDone(int msecs);
+ bool waitForDone(int msecs = -1);
};
QT_END_NAMESPACE
diff --git a/src/corelib/thread/qthreadpool_p.h b/src/corelib/thread/qthreadpool_p.h
index 910e0b0714..760732993d 100644
--- a/src/corelib/thread/qthreadpool_p.h
+++ b/src/corelib/thread/qthreadpool_p.h
@@ -82,7 +82,7 @@ public:
void startThread(QRunnable *runnable = 0);
void reset();
- bool waitForDone(int msecs = -1);
+ bool waitForDone(int msecs);
void stealRunnable(QRunnable *);
mutable QMutex mutex;