From cc3760a7dfd937cb662ed3c0479a8ced47fde5ae Mon Sep 17 00:00:00 2001 From: Max-Wilhelm Bruker Date: Fri, 16 Nov 2012 21:42:17 +0100 Subject: [PATCH] fixed deadlock condition --- common/server_protocolhandler.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/common/server_protocolhandler.cpp b/common/server_protocolhandler.cpp index 382b2ebc..03251fff 100644 --- a/common/server_protocolhandler.cpp +++ b/common/server_protocolhandler.cpp @@ -403,10 +403,11 @@ Response::ResponseCode Server_ProtocolHandler::cmdGetGamesOfUser(const Command_G // XXX This does not take external users into account. // XXX Maybe remove this check and test if the result list is empty at the end. - server->clientsLock.lockForRead(); - if (!server->getUsers().contains(QString::fromStdString(cmd.user_name()))) - return Response::RespNameNotFound; - server->clientsLock.unlock(); + { + QReadLocker clientsLocker(&server->clientsLock); + if (!server->getUsers().contains(QString::fromStdString(cmd.user_name()))) + return Response::RespNameNotFound; + } Response_GetGamesOfUser *re = new Response_GetGamesOfUser; server->roomsLock.lockForRead();