summaryrefslogtreecommitdiffstats
path: root/src/plugins/bearer/icd/qicdengine.h
diff options
context:
space:
mode:
authorAaron McCarthy <aaron.mccarthy@nokia.com>2010-08-02 23:56:13 (GMT)
committerAaron McCarthy <aaron.mccarthy@nokia.com>2010-08-04 03:49:19 (GMT)
commitb0a33937851f56a1830141e519fd6ba21481e6c9 (patch)
treed7ffc0fae4a114e11dea447393cffdf3a57fc04e /src/plugins/bearer/icd/qicdengine.h
parent10d35e53d97e32018ae20632b86c1261a474dc2a (diff)
downloadQt-b0a33937851f56a1830141e519fd6ba21481e6c9.zip
Qt-b0a33937851f56a1830141e519fd6ba21481e6c9.tar.gz
Qt-b0a33937851f56a1830141e519fd6ba21481e6c9.tar.bz2
Fix deadlocks in ICD and NetworkManager engines.
Ensure that locks are not held when signals are emitted. Task-number: QTBUG-12631
Diffstat (limited to 'src/plugins/bearer/icd/qicdengine.h')
-rw-r--r--src/plugins/bearer/icd/qicdengine.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/plugins/bearer/icd/qicdengine.h b/src/plugins/bearer/icd/qicdengine.h
index 16dc979..a768d84 100644
--- a/src/plugins/bearer/icd/qicdengine.h
+++ b/src/plugins/bearer/icd/qicdengine.h
@@ -126,13 +126,13 @@ public:
QMutexLocker locker(&mutex);
accessPointConfigurations.insert(ptr->id, ptr);
+
+ locker.unlock();
emit configurationAdded(ptr);
}
inline void changedSessionConfiguration(QNetworkConfigurationPrivatePointer ptr)
{
- QMutexLocker locker(&mutex);
-
emit configurationChanged(ptr);
}
@@ -144,14 +144,14 @@ Q_SIGNALS:
void iapStateChanged(const QString& iapid, uint icd_connection_state);
private Q_SLOTS:
- void doRequestUpdate(QList<Maemo::IcdScanResult> scanned = QList<Maemo::IcdScanResult>());
- void cancelAsyncConfigurationUpdate();
void finishAsyncConfigurationUpdate();
void asyncUpdateConfigurationsSlot(QDBusMessage msg);
void connectionStateSignalsSlot(QDBusMessage msg);
private:
void startListeningStateSignalsForAllConnections();
+ void doRequestUpdate(QList<Maemo::IcdScanResult> scanned = QList<Maemo::IcdScanResult>());
+ void cancelAsyncConfigurationUpdate();
private:
IapMonitor *iapMonitor;