diff options
Diffstat (limited to 'src/network/bearer/qbearerengine.cpp')
-rw-r--r-- | src/network/bearer/qbearerengine.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/network/bearer/qbearerengine.cpp b/src/network/bearer/qbearerengine.cpp index 677da08cb6..06bf449611 100644 --- a/src/network/bearer/qbearerengine.cpp +++ b/src/network/bearer/qbearerengine.cpp @@ -38,6 +38,8 @@ ****************************************************************************/ #include "qbearerengine_p.h" +#include <QtCore/private/qlocking_p.h> + #include <algorithm> #ifndef QT_NO_BEARERMANAGEMENT @@ -46,24 +48,23 @@ QT_BEGIN_NAMESPACE static void cleanUpConfigurations(QHash<QString, QNetworkConfigurationPrivatePointer> &configurations) { - for (const auto &ptr : qAsConst(configurations)) { + for (auto &ptr : qExchange(configurations, {})) { ptr->isValid = false; ptr->id.clear(); } - configurations.clear(); } static bool hasUsedConfiguration(const QHash<QString, QNetworkConfigurationPrivatePointer> &configurations) { auto isUsed = [](const QNetworkConfigurationPrivatePointer &ptr) { - return ptr->ref.load() > 1; + return ptr->ref.loadRelaxed() > 1; }; const auto end = configurations.end(); return std::find_if(configurations.begin(), end, isUsed) != end; } QBearerEngine::QBearerEngine(QObject *parent) - : QObject(parent), mutex(QMutex::Recursive) + : QObject(parent) { } @@ -87,7 +88,7 @@ bool QBearerEngine::requiresPolling() const */ bool QBearerEngine::configurationsInUse() const { - QMutexLocker locker(&mutex); + const auto locker = qt_scoped_lock(mutex); return hasUsedConfiguration(accessPointConfigurations) || hasUsedConfiguration(snapConfigurations) || hasUsedConfiguration(userChoiceConfigurations); |