Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mumble-voip/mumble.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Hacker <dd0t@users.sourceforge.net>2015-05-01 00:09:52 +0300
committerMikkel Krautz <mikkel@krautz.dk>2015-12-10 03:13:57 +0300
commit1e4e1e12fb095c49f99e2448066dea704c4116e0 (patch)
tree14a3f408cdb69d9ec7e73660f79d409161f58c83
parent1a4ae8deddc9c833ee276cbbb08bd19940e2840c (diff)
Prevent OverlayClient destructor from hanging on disconnect
Limit the maximum time a clean disconnect may take to 1s. Previously our GUI thread could become semi-permanently blocked.
-rw-r--r--src/mumble/OverlayClient.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/mumble/OverlayClient.cpp b/src/mumble/OverlayClient.cpp
index c3c408dfa..4a08fa7c3 100644
--- a/src/mumble/OverlayClient.cpp
+++ b/src/mumble/OverlayClient.cpp
@@ -90,8 +90,12 @@ OverlayClient::~OverlayClient() {
delete qgpiCursor;
delete qgpiLogo;
- qlsSocket->disconnect();
- qlsSocket->abort();
+ qlsSocket->disconnectFromServer();
+ if (!qlsSocket->waitForDisconnected(1000)) {
+ qDebug() << "OverlayClient: Failed to cleanly disconnect: " << qlsSocket->errorString();
+ qlsSocket->abort();
+ }
+
qlsSocket->deleteLater();
ougUsers.reset();