From 1f1e0496123757198ccf9d7e191b531bf18be9c7 Mon Sep 17 00:00:00 2001 From: ComputerMaster1st Date: Wed, 19 Jun 2019 10:57:01 +0100 Subject: [PATCH] Prevent infinite loop on client disconnect --- src/Discord.Net.WebSocket/DiscordSocketClient.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Discord.Net.WebSocket/DiscordSocketClient.cs b/src/Discord.Net.WebSocket/DiscordSocketClient.cs index 1b94ab1dc..71340055a 100644 --- a/src/Discord.Net.WebSocket/DiscordSocketClient.cs +++ b/src/Discord.Net.WebSocket/DiscordSocketClient.cs @@ -264,7 +264,9 @@ namespace Discord.WebSocket await heartbeatTask.ConfigureAwait(false); _heartbeatTask = null; - while (_heartbeatTimes.TryDequeue(out _)) { } + // Check if heartbeatTimes still contains something. Prevent infinite-looping. + if (_heartbeatTimes.Count > 0) + while (_heartbeatTimes.TryDequeue(out _)) { } _lastMessageTime = 0; await _gatewayLogger.DebugAsync("Waiting for guild downloader").ConfigureAwait(false);