From 3c1ba07178dfd5bacc419c853587af93596d2ab8 Mon Sep 17 00:00:00 2001 From: RogueException Date: Mon, 12 Oct 2015 03:40:14 -0300 Subject: [PATCH] Cleaned up TaskHelper --- src/Discord.Net/Helpers/TaskHelper.cs | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/Discord.Net/Helpers/TaskHelper.cs b/src/Discord.Net/Helpers/TaskHelper.cs index baae67be1..348678267 100644 --- a/src/Discord.Net/Helpers/TaskHelper.cs +++ b/src/Discord.Net/Helpers/TaskHelper.cs @@ -34,28 +34,32 @@ namespace Discord.Helpers else return await self.ConfigureAwait(false); } - public static async Task Timeout(this Task self, int milliseconds, CancellationTokenSource cancelToken) + public static async Task Timeout(this Task self, int milliseconds, CancellationTokenSource timeoutToken) { try { - cancelToken.CancelAfter(milliseconds); - await self; + timeoutToken.CancelAfter(milliseconds); + await self.ConfigureAwait(false); } catch (OperationCanceledException) { - throw new TimeoutException(); + if (timeoutToken.IsCancellationRequested) + throw new TimeoutException(); + throw; } } - public static async Task Timeout(this Task self, int milliseconds, CancellationTokenSource cancelToken) + public static async Task Timeout(this Task self, int milliseconds, CancellationTokenSource timeoutToken) { try { - cancelToken.CancelAfter(milliseconds); - return await self; + timeoutToken.CancelAfter(milliseconds); + return await self.ConfigureAwait(false); } catch (OperationCanceledException) { - throw new TimeoutException(); + if (timeoutToken.IsCancellationRequested) + throw new TimeoutException(); + throw; } } }