summaryrefslogtreecommitdiff
path: root/src/libs/utils/ssh/sshconnection.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/utils/ssh/sshconnection.cpp')
-rw-r--r--src/libs/utils/ssh/sshconnection.cpp16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/libs/utils/ssh/sshconnection.cpp b/src/libs/utils/ssh/sshconnection.cpp
index 6a712817ed..5ff083e6d2 100644
--- a/src/libs/utils/ssh/sshconnection.cpp
+++ b/src/libs/utils/ssh/sshconnection.cpp
@@ -48,6 +48,7 @@
#include <QtCore/QFile>
#include <QtCore/QMutex>
+#include <QtCore/QMutexLocker>
#include <QtNetwork/QNetworkProxy>
#include <QtNetwork/QTcpSocket>
@@ -70,15 +71,12 @@ namespace {
void doStaticInitializationsIfNecessary()
{
+ QMutexLocker locker(&staticInitMutex);
if (!staticInitializationsDone) {
- staticInitMutex.lock();
- if (!staticInitializationsDone) {
- Botan::LibraryInitializer::initialize("thread_safe=true");
- qRegisterMetaType<Utils::SshError>("Utils::SshError");
- qRegisterMetaType<Utils::SftpJobId>("Utils::SftpJobId");
- staticInitializationsDone = true;
- }
- staticInitMutex.unlock();
+ Botan::LibraryInitializer::initialize("thread_safe=true");
+ qRegisterMetaType<Utils::SshError>("Utils::SshError");
+ qRegisterMetaType<Utils::SftpJobId>("Utils::SftpJobId");
+ staticInitializationsDone = true;
}
}
} // anonymous namespace
@@ -620,6 +618,8 @@ void SshConnectionPrivate::sendKeepAlivePacket()
void SshConnectionPrivate::connectToHost()
{
+ QTC_ASSERT(m_state == SocketUnconnected, return);
+
m_incomingData.clear();
m_incomingPacket.reset();
m_sendFacility.reset();