From 0c2c9ca7f4aab14c3291ba3b8b3f4302636cc7ad Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Thu, 24 Oct 2024 17:52:52 -0700 Subject: [PATCH] QThread/Unix: replace some uses of pthread_self() with our code MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This code predated the existence of the currentThreadId() and isCurrentThread() functions. Our implementations are slightly faster. Change-Id: Id2b20a7f06e0c2a1bc35fffd4fb4dcf3f20769cd Reviewed-by: Fabian Kosmale Reviewed-by: Edward Welbourne Reviewed-by: MÃ¥rten Nordheim (cherry picked from commit 8a8e91a7c141994c331d2b9da7d9c5e2129c70b9) Reviewed-by: Qt Cherry-pick Bot --- src/corelib/thread/qthread_unix.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/corelib/thread/qthread_unix.cpp b/src/corelib/thread/qthread_unix.cpp index 4b6e0d8f3c8..14c6490c1e7 100644 --- a/src/corelib/thread/qthread_unix.cpp +++ b/src/corelib/thread/qthread_unix.cpp @@ -214,7 +214,7 @@ QThreadData *QThreadData::current(bool createIfNecessary) } data->deref(); data->isAdopted = true; - data->threadId.storeRelaxed(to_HANDLE(pthread_self())); + data->threadId.storeRelaxed(QThread::currentThreadId()); if (!QCoreApplicationPrivate::theMainThreadId.loadAcquire()) { auto *mainThread = data->thread.loadRelaxed(); mainThread->setObjectName("Qt mainThread"); @@ -325,8 +325,7 @@ void *QThreadPrivate::start(void *arg) } // threadId is set in QThread::start() - Q_ASSERT(pthread_equal(from_HANDLE(data->threadId.loadRelaxed()), - pthread_self())); + Q_ASSERT(data->threadId.loadRelaxed() == QThread::currentThreadId()); data->ref(); data->quitNow = thr->d_func()->exited; @@ -829,7 +828,7 @@ bool QThread::wait(QDeadlineTimer deadline) Q_D(QThread); QMutexLocker locker(&d->mutex); - if (from_HANDLE(d->data->threadId.loadRelaxed()) == pthread_self()) { + if (isCurrentThread()) { qWarning("QThread::wait: Thread tried to wait on itself"); return false; }