diff --git a/src/corelib/thread/qthread.cpp b/src/corelib/thread/qthread.cpp index 95489a6caab..5527cfcd84d 100644 --- a/src/corelib/thread/qthread.cpp +++ b/src/corelib/thread/qthread.cpp @@ -926,6 +926,19 @@ QThread::Priority QThread::priority() const \sa sleep(), terminate() */ +bool QThread::wait(QDeadlineTimer deadline) +{ + Q_D(QThread); + QMutexLocker locker(&d->mutex); + + if (d->threadState == QThreadPrivate::NotStarted || d->threadState == QThreadPrivate::Finished) + return true; + if (isCurrentThread()) { + qWarning("QThread::wait: Thread tried to wait on itself"); + return false; + } + return d->wait(locker, deadline); +} /*! \fn void QThread::setTerminationEnabled(bool enabled) diff --git a/src/corelib/thread/qthread_unix.cpp b/src/corelib/thread/qthread_unix.cpp index c1f212b1425..7dd7fd056ca 100644 --- a/src/corelib/thread/qthread_unix.cpp +++ b/src/corelib/thread/qthread_unix.cpp @@ -869,24 +869,6 @@ inline void QThreadPrivate::wakeAll() wakeAllInternal(this); } -bool QThread::wait(QDeadlineTimer deadline) -{ - Q_D(QThread); - QMutexLocker locker(&d->mutex); - - if (d->threadState == QThreadPrivate::NotStarted) - return true; - if (d->threadState == QThreadPrivate::Finished) - return true; - - if (isCurrentThread()) { - qWarning("QThread::wait: Thread tried to wait on itself"); - return false; - } - - return d->wait(locker, deadline); -} - bool QThreadPrivate::wait(QMutexLocker &locker, QDeadlineTimer deadline) { constexpr int HasJoinerBit = int(0x8000'0000); // a.k.a. sign bit diff --git a/src/corelib/thread/qthread_win.cpp b/src/corelib/thread/qthread_win.cpp index bbfc05a0b3a..61426546274 100644 --- a/src/corelib/thread/qthread_win.cpp +++ b/src/corelib/thread/qthread_win.cpp @@ -414,20 +414,6 @@ void QThread::terminate() d->finish(false); } -bool QThread::wait(QDeadlineTimer deadline) -{ - Q_D(QThread); - QMutexLocker locker(&d->mutex); - - if (isCurrentThread()) { - qWarning("QThread::wait: Thread tried to wait on itself"); - return false; - } - if (d->threadState == QThreadPrivate::NotStarted || d->threadState == QThreadPrivate::Finished) - return true; - return d->wait(locker, deadline); -} - bool QThreadPrivate::wait(QMutexLocker &locker, QDeadlineTimer deadline) { Q_ASSERT(threadState != QThreadPrivate::Finished);