diff --git a/common/server_player.cpp b/common/server_player.cpp index 01f6947fa..13a5405a6 100644 --- a/common/server_player.cpp +++ b/common/server_player.cpp @@ -920,6 +920,8 @@ Server_Player::cmdConcede(const Command_Concede & /*cmd*/, ResponseContainer & / game->removeArrowsRelatedToPlayer(ges, this); game->unattachCards(ges, this); + playerMutex.lock(); + // Return cards to their rightful owners before conceding the game static const QRegularExpression ownerRegex{"Owner: ?([^\n]+)"}; for (const auto &card : zones.value("table")->getCards()) { @@ -959,6 +961,8 @@ Server_Player::cmdConcede(const Command_Concede & /*cmd*/, ResponseContainer & / } } + playerMutex.unlock(); + // All borrowed cards have been returned, can now continue cleanup process clearZones();