aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcus Tillmanns <[email protected]>2025-02-19 07:54:03 +0100
committerMarcus Tillmanns <[email protected]>2025-02-20 12:40:44 +0000
commit881f15da6b66b613faa72dc428c3b3352db6a2dd (patch)
tree4d420129c149e25d039133a06a988e9d7eb1cf00
parent691e08c63e804ed6840b46b47888f4b884daa351 (diff)
Docker: Replace mutex+value with SynchronizedValue
-rw-r--r--src/plugins/docker/dockerdevice.cpp14
-rw-r--r--src/plugins/docker/dockerdevice.h5
2 files changed, 9 insertions, 10 deletions
diff --git a/src/plugins/docker/dockerdevice.cpp b/src/plugins/docker/dockerdevice.cpp
index a2696c8ee61..361c09639dc 100644
--- a/src/plugins/docker/dockerdevice.cpp
+++ b/src/plugins/docker/dockerdevice.cpp
@@ -1385,19 +1385,19 @@ DockerDeviceFactory::DockerDeviceFactory()
});
setConstructionFunction([this] {
auto device = DockerDevice::create();
- QMutexLocker lk(&m_deviceListMutex);
- m_existingDevices.push_back(device);
+ m_existingDevices.writeLocked()->push_back(device);
return device;
});
}
void DockerDeviceFactory::shutdownExistingDevices()
{
- QMutexLocker lk(&m_deviceListMutex);
- for (const auto &weakDevice : m_existingDevices) {
- if (std::shared_ptr<DockerDevice> device = weakDevice.lock())
- device->shutdown();
- }
+ m_existingDevices.read([](const std::vector<std::weak_ptr<DockerDevice>> &devices) {
+ for (const std::weak_ptr<DockerDevice> &weakDevice : devices) {
+ if (std::shared_ptr<DockerDevice> device = weakDevice.lock())
+ device->shutdown();
+ }
+ });
}
expected_str<QPair<Utils::OsType, Utils::OsArch>> DockerDevicePrivate::osTypeAndArch() const
diff --git a/src/plugins/docker/dockerdevice.h b/src/plugins/docker/dockerdevice.h
index ea2f0d21feb..8c575b08ad6 100644
--- a/src/plugins/docker/dockerdevice.h
+++ b/src/plugins/docker/dockerdevice.h
@@ -8,7 +8,7 @@
#include <projectexplorer/devicesupport/idevice.h>
#include <projectexplorer/devicesupport/idevicefactory.h>
-#include <QMutex>
+#include <utils/synchronizedvalue.h>
namespace Docker::Internal {
@@ -92,8 +92,7 @@ public:
void shutdownExistingDevices();
private:
- QMutex m_deviceListMutex;
- std::vector<std::weak_ptr<DockerDevice>> m_existingDevices;
+ Utils::SynchronizedValue<std::vector<std::weak_ptr<DockerDevice>>> m_existingDevices;
};
} // namespace Docker::Internal