diff options
author | Aaron McCarthy <aaron.mccarthy@nokia.com> | 2010-08-02 23:56:13 (GMT) |
---|---|---|
committer | Aaron McCarthy <aaron.mccarthy@nokia.com> | 2010-08-04 03:49:19 (GMT) |
commit | b0a33937851f56a1830141e519fd6ba21481e6c9 (patch) | |
tree | d7ffc0fae4a114e11dea447393cffdf3a57fc04e /src/plugins/bearer/icd/qicdengine.h | |
parent | 10d35e53d97e32018ae20632b86c1261a474dc2a (diff) | |
download | Qt-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.h | 8 |
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; |