Lock around heartbeat handler (#1264)

This commit is contained in:
BrennanConroy 2018-01-03 12:29:25 -08:00 committed by GitHub
parent 6baee8b7a9
commit d5d159eb5f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 9 additions and 3 deletions

View File

@ -74,17 +74,23 @@ namespace Microsoft.AspNetCore.Sockets
public TransferMode TransferMode { get; set; } public TransferMode TransferMode { get; set; }
public void OnHeartbeat(Action<object> action, object state) public void OnHeartbeat(Action<object> action, object state)
{
lock (_heartbeatHandlers)
{ {
_heartbeatHandlers.Add((action, state)); _heartbeatHandlers.Add((action, state));
} }
}
public void TickHeartbeat() public void TickHeartbeat()
{
lock (_heartbeatHandlers)
{ {
foreach (var (handler, state) in _heartbeatHandlers) foreach (var (handler, state) in _heartbeatHandlers)
{ {
handler(state); handler(state);
} }
} }
}
public async Task DisposeAsync() public async Task DisposeAsync()
{ {