From 600b00bb7f2a1a10482c4a2813863d8a3e8f2f20 Mon Sep 17 00:00:00 2001 From: JohnCorby Date: Thu, 27 Feb 2025 20:15:27 -0800 Subject: [PATCH] okay actually do make copy --- SteamTransport/Server.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/SteamTransport/Server.cs b/SteamTransport/Server.cs index 4facab67..45dd9212 100644 --- a/SteamTransport/Server.cs +++ b/SteamTransport/Server.cs @@ -2,6 +2,7 @@ using Steamworks; using System; using System.Collections.Generic; +using System.Linq; namespace SteamTransport; @@ -102,7 +103,8 @@ public class Server { var ppOutMessages = new IntPtr[Util.MaxMessages]; - foreach (var conn in _conns) + // receive can result in disconnect, which modifies the collection. we must copy + foreach (var conn in _conns.ToList()) { var numMessages = SteamNetworkingSockets.ReceiveMessagesOnConnection(conn, ppOutMessages, ppOutMessages.Length); for (var i = 0; i < numMessages; i++)