From be21e2871ab7906bdac674c813e7f871b5d62aec Mon Sep 17 00:00:00 2001 From: Thorvald Natvig Date: Fri, 22 Jun 2007 11:03:18 +0000 Subject: [PATCH] Make new timeout code lock-safe on Qt 4.2. Oops. git-svn-id: https://mumble.svn.sourceforge.net/svnroot/mumble/trunk@488 05730e5d-ab1b-0410-a4ac-84af385074fa --- src/murmur/Server.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/murmur/Server.cpp b/src/murmur/Server.cpp index bbc863862..820850133 100644 --- a/src/murmur/Server.cpp +++ b/src/murmur/Server.cpp @@ -426,13 +426,18 @@ void Server::message(QByteArray &qbaMsg, Connection *cCon) { void Server::checkTimeout() { - QWriteLocker wl(&qrwlConnections); + QList qlClose; + + qrwlConnections.lockForRead(); foreach(Connection *c, qmConnections) { if (c->activityTime() > (g_sp.iTimeout * 1000)) { log(QLatin1String("Timeout"), c); - c->disconnect(); + qlClose.append(c); } } + qrwlConnections.unlock(); + foreach(Connection *c, qlClose) + c->disconnect(); } void Server::emitPacket(Message *msg) {