diff --git a/src/Microsoft.AspNetCore.Sockets/DefaultConnectionContext.cs b/src/Microsoft.AspNetCore.Sockets/DefaultConnectionContext.cs index b27b9543cd..6faa0b0b26 100644 --- a/src/Microsoft.AspNetCore.Sockets/DefaultConnectionContext.cs +++ b/src/Microsoft.AspNetCore.Sockets/DefaultConnectionContext.cs @@ -75,14 +75,20 @@ namespace Microsoft.AspNetCore.Sockets public void OnHeartbeat(Action action, object state) { - _heartbeatHandlers.Add((action, state)); + lock (_heartbeatHandlers) + { + _heartbeatHandlers.Add((action, state)); + } } public void TickHeartbeat() { - foreach (var (handler, state) in _heartbeatHandlers) + lock (_heartbeatHandlers) { - handler(state); + foreach (var (handler, state) in _heartbeatHandlers) + { + handler(state); + } } }