From 9fc92d016d25136dacf9c8a68adafe31aed85fe7 Mon Sep 17 00:00:00 2001 From: RogueException Date: Mon, 1 Aug 2016 22:39:17 -0300 Subject: [PATCH] Don't TrySetException with a null exception --- src/Discord.Net/Rpc/DiscordRpcClient.cs | 19 ++++++++++--------- src/Discord.Net/WebSocket/DiscordSocketClient.cs | 19 +++++++++---------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/Discord.Net/Rpc/DiscordRpcClient.cs b/src/Discord.Net/Rpc/DiscordRpcClient.cs index a716b12ea..001b94b7f 100644 --- a/src/Discord.Net/Rpc/DiscordRpcClient.cs +++ b/src/Discord.Net/Rpc/DiscordRpcClient.cs @@ -113,18 +113,19 @@ namespace Discord.Rpc } } /// - public async Task DisconnectAsync() + /// + public Task DisconnectAsync() => DisconnectAsync(null, false); + private async Task DisconnectAsync(Exception ex = null, bool isReconnecting = false) { - await _connectionLock.WaitAsync().ConfigureAwait(false); - try + if (ex == null) { - await DisconnectInternalAsync(null, false).ConfigureAwait(false); + if (_connectTask?.TrySetCanceled() ?? false) return; } - finally { _connectionLock.Release(); } - } - private async Task DisconnectAsync(Exception ex, bool isReconnecting) - { - if (_connectTask?.TrySetException(ex) ?? false) return; + else + { + if (_connectTask?.TrySetException(ex) ?? false) return; + } + await _connectionLock.WaitAsync().ConfigureAwait(false); try { diff --git a/src/Discord.Net/WebSocket/DiscordSocketClient.cs b/src/Discord.Net/WebSocket/DiscordSocketClient.cs index 0dca59214..7a6722f18 100644 --- a/src/Discord.Net/WebSocket/DiscordSocketClient.cs +++ b/src/Discord.Net/WebSocket/DiscordSocketClient.cs @@ -181,19 +181,18 @@ namespace Discord.WebSocket } } /// - public async Task DisconnectAsync() + public Task DisconnectAsync() => DisconnectAsync(null, false); + private async Task DisconnectAsync(Exception ex = null, bool isReconnecting = false) { - if (_connectTask?.TrySetCanceled() ?? false) return; - await _connectionLock.WaitAsync().ConfigureAwait(false); - try + if (ex == null) { - await DisconnectInternalAsync(null, false).ConfigureAwait(false); + if (_connectTask?.TrySetCanceled() ?? false) return; } - finally { _connectionLock.Release(); } - } - private async Task DisconnectAsync(Exception ex, bool isReconnecting) - { - if (_connectTask?.TrySetException(ex) ?? false) return; + else + { + if (_connectTask?.TrySetException(ex) ?? false) return; + } + await _connectionLock.WaitAsync().ConfigureAwait(false); try {