From c42b885e1f4788c46df0841ced1e24b607fe5826 Mon Sep 17 00:00:00 2001 From: Michael Lidgren Date: Mon, 7 Sep 2015 09:44:11 +0200 Subject: [PATCH] don't take double lock unnecessarily --- Lidgren.Network/NetPeer.Internal.cs | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Lidgren.Network/NetPeer.Internal.cs b/Lidgren.Network/NetPeer.Internal.cs index 1073660..7c3e8c6 100644 --- a/Lidgren.Network/NetPeer.Internal.cs +++ b/Lidgren.Network/NetPeer.Internal.cs @@ -232,19 +232,19 @@ namespace Lidgren.Network foreach (var conn in m_connections) if (conn != null) list.Add(conn); - - lock (m_handshakes) - { - foreach (var hs in m_handshakes.Values) - if (hs != null) - list.Add(hs); - - // shut down connections - foreach (NetConnection conn in list) - conn.Shutdown(m_shutdownReason); - } } + lock (m_handshakes) + { + foreach (var hs in m_handshakes.Values) + if (hs != null && list.Contains(hs) == false) + list.Add(hs); + } + + // shut down connections + foreach (NetConnection conn in list) + conn.Shutdown(m_shutdownReason); + FlushDelayedPackets(); // one final heartbeat, will send stuff and do disconnect