summaryrefslogtreecommitdiffstats
path: root/src/corelib/thread
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2020-06-23 16:26:35 -0700
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2020-06-26 03:32:53 +0000
commit217cc72e10a64e668bdd80b7c50a66d3c8eb4a2d (patch)
tree41c5de1d7259ae3a90b45c08daba734c92c9c989 /src/corelib/thread
parente7b4f118fb6b5847345d11fb81ed67b6dbb95b41 (diff)
QThread: Fix unnecessary stricter accesses to QThreadData::thread
Commit ec6556a2b99df373eb43ca009340a7f0f19bacbd changed the member from a plain pointer to a QAtomicPointer. Not all accesses were caught. Change-Id: I3d4f433ff6e94fd390a9fffd161b4ff25508c48d Reviewed-by: David Faure <david.faure@kdab.com> (cherry picked from commit e7d76d79e8d48b7d38ac635e9ac8c3b667c1aaa2) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src/corelib/thread')
-rw-r--r--src/corelib/thread/qthread.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/corelib/thread/qthread.cpp b/src/corelib/thread/qthread.cpp
index 6a736bcfa8..db53a8cade 100644
--- a/src/corelib/thread/qthread.cpp
+++ b/src/corelib/thread/qthread.cpp
@@ -417,7 +417,7 @@ QThread::QThread(QObject *parent)
{
Q_D(QThread);
// fprintf(stderr, "QThreadData %p created for thread %p\n", d->data, this);
- d->data->thread = this;
+ d->data->thread.storeRelaxed(this);
}
/*!
@@ -428,7 +428,7 @@ QThread::QThread(QThreadPrivate &dd, QObject *parent)
{
Q_D(QThread);
// fprintf(stderr, "QThreadData %p taken from private data for thread %p\n", d->data, this);
- d->data->thread = this;
+ d->data->thread.storeRelaxed(this);
}
/*!
@@ -453,7 +453,7 @@ QThread::~QThread()
if (d->running && !d->finished && !d->data->isAdopted)
qFatal("QThread: Destroyed while thread is still running");
- d->data->thread = nullptr;
+ d->data->thread.storeRelease(nullptr);
}
}
@@ -799,7 +799,7 @@ QThread::QThread(QObject *parent)
: QObject(*(new QThreadPrivate), parent)
{
Q_D(QThread);
- d->data->thread = this;
+ d->data->thread.storeRelaxed(this);
}
QThread::~QThread()
@@ -917,7 +917,7 @@ QThread::QThread(QThreadPrivate &dd, QObject *parent)
{
Q_D(QThread);
// fprintf(stderr, "QThreadData %p taken from private data for thread %p\n", d->data, this);
- d->data->thread = this;
+ d->data->thread.storeRelaxed(this);
}
QThreadPrivate::QThreadPrivate(QThreadData *d) : data(d ? d : new QThreadData)
@@ -926,7 +926,7 @@ QThreadPrivate::QThreadPrivate(QThreadData *d) : data(d ? d : new QThreadData)
QThreadPrivate::~QThreadPrivate()
{
- data->thread = nullptr; // prevent QThreadData from deleting the QThreadPrivate (again).
+ data->thread.storeRelease(nullptr); // prevent QThreadData from deleting the QThreadPrivate (again).
delete data;
}