diff --git a/ForgeAlloy/ForgeAlloyUnity/Assets/ForgeNetworking/Networking/Players/ForgePlayerTimeoutBridge.cs b/ForgeAlloy/ForgeAlloyUnity/Assets/ForgeNetworking/Networking/Players/ForgePlayerTimeoutBridge.cs index e433b39d..fba59634 100644 --- a/ForgeAlloy/ForgeAlloyUnity/Assets/ForgeNetworking/Networking/Players/ForgePlayerTimeoutBridge.cs +++ b/ForgeAlloy/ForgeAlloyUnity/Assets/ForgeNetworking/Networking/Players/ForgePlayerTimeoutBridge.cs @@ -30,6 +30,7 @@ private void WatchForTimeouts() var now = DateTime.Now; lock (_previousPlayerSet) { + _timedOutPlayers.Clear(); foreach (var player in _previousPlayerSet) { var span = now - player.LastCommunication; @@ -51,6 +52,9 @@ private void ProcessPlayerLists(object state) { lock (_previousPlayerSet) { + foreach (var player in _timedOutPlayers) + _networkMediator.PlayerRepository.RemovePlayer(player); + _previousPlayerSet.Clear(); var itr = _networkMediator.PlayerRepository.GetEnumerator(); while (itr.MoveNext()) @@ -58,8 +62,6 @@ private void ProcessPlayerLists(object state) if (itr.Current != null) _previousPlayerSet.Add(itr.Current); } - foreach (var player in _timedOutPlayers) - _networkMediator.PlayerRepository.RemovePlayer(player); } } }