From d25ff2c7e28cc5a0a150849782958d2633efc110 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Wed, 6 Nov 2024 08:30:23 -0800 Subject: [PATCH] QThread: move the identical Unix+Windows wait() functions to qthread.cpp Change-Id: If94c9bc5ca5349b6a028fffd1ec6c6a04ff94c07 Reviewed-by: Edward Welbourne --- src/corelib/thread/qthread.cpp | 13 +++++++++++++ src/corelib/thread/qthread_unix.cpp | 18 ------------------ src/corelib/thread/qthread_win.cpp | 14 -------------- 3 files changed, 13 insertions(+), 32 deletions(-) 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);