From a08e46f279ad946107e0e1571f57b2299ec2c152 Mon Sep 17 00:00:00 2001 From: Benau <Benau@users.noreply.github.com> Date: Mon, 4 Jun 2018 13:47:37 +0800 Subject: [PATCH] Remove the keys too after selection --- src/network/protocols/server_lobby.cpp | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/network/protocols/server_lobby.cpp b/src/network/protocols/server_lobby.cpp index 0b6c16d7c..76b0e3979 100644 --- a/src/network/protocols/server_lobby.cpp +++ b/src/network/protocols/server_lobby.cpp @@ -592,14 +592,6 @@ void ServerLobby::startSelection(const Event *event) return; } - // Drop all pending players - for (auto& p : m_pending_connection) - { - if (auto peer = p.first.lock()) - peer->disconnect(); - } - m_pending_connection.clear(); - if (m_server_registered) { unregisterServer(false/*now*/); @@ -648,6 +640,16 @@ void ServerLobby::startSelection(const Event *event) delete ns; m_state = SELECTING; + // Drop all pending players and keys + for (auto& p : m_pending_connection) + { + if (auto peer = p.first.lock()) + peer->disconnect(); + } + m_pending_connection.clear(); + std::unique_lock<std::mutex> ul(m_keys_mutex); + m_keys.clear(); + ul.unlock(); // Will be changed after the first vote received m_timeout.store(std::numeric_limits<float>::max());