summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/android
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2017-02-08 15:48:29 +0100
committerLiang Qi <liang.qi@qt.io>2017-02-08 15:49:18 +0100
commitdd756011da13b95fdb630a1bbb90234f1e60f415 (patch)
treea6259b1e9b6463108796ce912e3d1752e301505f /src/plugins/platforms/android
parent0c50edbe84914469973a3b10e0170023ccdd66fe (diff)
parentb6bf2a33f4c33a212da7b58a049b3b5b20b3f327 (diff)
Merge remote-tracking branch 'origin/5.8' into 5.9
Conflicts: configure.json mkspecs/win32-icc/qmake.conf Change-Id: Ibf40546b024d644c7d9ed490bee15b82597f4d3f
Diffstat (limited to 'src/plugins/platforms/android')
-rw-r--r--src/plugins/platforms/android/qandroideventdispatcher.cpp6
-rw-r--r--src/plugins/platforms/android/qandroideventdispatcher.h4
2 files changed, 4 insertions, 6 deletions
diff --git a/src/plugins/platforms/android/qandroideventdispatcher.cpp b/src/plugins/platforms/android/qandroideventdispatcher.cpp
index 104e905b8f..e12551283f 100644
--- a/src/plugins/platforms/android/qandroideventdispatcher.cpp
+++ b/src/plugins/platforms/android/qandroideventdispatcher.cpp
@@ -108,10 +108,9 @@ QAndroidEventDispatcherStopper *QAndroidEventDispatcherStopper::instance()
void QAndroidEventDispatcherStopper::startAll()
{
QMutexLocker lock(&m_mutex);
- if (started)
+ if (!m_started.testAndSetOrdered(0, 1))
return;
- started = true;
for (QAndroidEventDispatcher *d : qAsConst(m_dispatchers))
d->start();
}
@@ -119,10 +118,9 @@ void QAndroidEventDispatcherStopper::startAll()
void QAndroidEventDispatcherStopper::stopAll()
{
QMutexLocker lock(&m_mutex);
- if (!started)
+ if (!m_started.testAndSetOrdered(1, 0))
return;
- started = false;
for (QAndroidEventDispatcher *d : qAsConst(m_dispatchers))
d->stop();
}
diff --git a/src/plugins/platforms/android/qandroideventdispatcher.h b/src/plugins/platforms/android/qandroideventdispatcher.h
index 057a1660c9..e6f903bced 100644
--- a/src/plugins/platforms/android/qandroideventdispatcher.h
+++ b/src/plugins/platforms/android/qandroideventdispatcher.h
@@ -68,7 +68,7 @@ class QAndroidEventDispatcherStopper
{
public:
static QAndroidEventDispatcherStopper *instance();
- static bool stopped() {return !instance()->started; }
+ static bool stopped() {return !instance()->m_started.load(); }
void startAll();
void stopAll();
void addEventDispatcher(QAndroidEventDispatcher *dispatcher);
@@ -77,7 +77,7 @@ public:
private:
QMutex m_mutex;
- bool started = true;
+ QAtomicInt m_started = 1;
QVector<QAndroidEventDispatcher *> m_dispatchers;
};