diff --git a/src/libs/clangsupport/connectionclient.cpp b/src/libs/clangsupport/connectionclient.cpp index 92028bc7bec..487b754fdb4 100644 --- a/src/libs/clangsupport/connectionclient.cpp +++ b/src/libs/clangsupport/connectionclient.cpp @@ -69,6 +69,12 @@ void ConnectionClient::startProcessAndConnectToServerAsynchronously() m_processFuture = m_processCreator.createProcess(); } +void ConnectionClient::disconnectFromServer() +{ + if (m_localSocket) + m_localSocket->disconnectFromServer(); +} + bool ConnectionClient::isConnected() const { return m_localSocket && m_localSocket->state() == QLocalSocket::ConnectedState; @@ -164,6 +170,7 @@ void ConnectionClient::restartProcessIfTimerIsNotResettedAndSocketIsEmpty() if (!m_localSocket || m_localSocket->bytesAvailable() > 0) return; // We come first, the incoming data was not yet processed. + disconnectFromServer(); restartProcessAsynchronously(); } diff --git a/src/libs/clangsupport/connectionclient.h b/src/libs/clangsupport/connectionclient.h index 6cd79956f5f..327275e0502 100644 --- a/src/libs/clangsupport/connectionclient.h +++ b/src/libs/clangsupport/connectionclient.h @@ -58,6 +58,7 @@ public: virtual ~ConnectionClient(); void startProcessAndConnectToServerAsynchronously(); + void disconnectFromServer(); bool isConnected() const; void sendEndMessage();