From ff70b8a9fd1ab32d899af5b5da787c6ba609f0bc Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Thu, 28 Jan 2021 16:12:30 +0100 Subject: [PATCH] SSH: Do not manage unshared connections Unshared connections are not re-usable, so our whole book-keeping procedure is not needed for them. Change-Id: I1b6ca3d1658d139b6687425cf32f821548dddade Reviewed-by: Christian Stenger --- src/libs/ssh/sshconnectionmanager.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/libs/ssh/sshconnectionmanager.cpp b/src/libs/ssh/sshconnectionmanager.cpp index ac73878b8cc..a0dd27673da 100644 --- a/src/libs/ssh/sshconnectionmanager.cpp +++ b/src/libs/ssh/sshconnectionmanager.cpp @@ -123,7 +123,8 @@ public: SshConnection * const connection = new SshConnection(sshParams); connect(connection, &SshConnection::disconnected, this, &SshConnectionManager::cleanup); - m_acquiredConnections.append(connection); + if (SshSettings::connectionSharingEnabled()) + m_acquiredConnections.append(connection); return connection; } @@ -133,13 +134,15 @@ public: QMutexLocker locker(&m_listMutex); const bool wasAquired = m_acquiredConnections.removeOne(connection); - QTC_ASSERT(wasAquired, return); + QTC_ASSERT(wasAquired == connection->sharingEnabled(), return); if (m_acquiredConnections.contains(connection)) return; bool doDelete = false; connection->moveToThread(QCoreApplication::instance()->thread()); - if (m_deprecatedConnections.removeOne(connection) + if (!connection->sharingEnabled()) { + doDelete = true; + } else if (m_deprecatedConnections.removeOne(connection) || connection->state() != SshConnection::Connected) { doDelete = true; } else {