From 54fe30a59ac656e99e12d2b985828f296b5e5f3a Mon Sep 17 00:00:00 2001 From: RogueException Date: Mon, 12 Oct 2015 23:09:26 -0300 Subject: [PATCH] Switched GetTasks to IEnumerable --- src/Discord.Net/DiscordSimpleClient.cs | 6 ++++-- src/Discord.Net/WebSockets/Voice/VoiceWebSocket.cs | 2 +- src/Discord.Net/WebSockets/WebSocket.BuiltIn.cs | 3 ++- .../WebSockets/WebSocket.WebSocketSharp.cs | 3 ++- src/Discord.Net/WebSockets/WebSocket.cs | 12 ++++++------ 5 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/Discord.Net/DiscordSimpleClient.cs b/src/Discord.Net/DiscordSimpleClient.cs index c49fa83dc..6889519a8 100644 --- a/src/Discord.Net/DiscordSimpleClient.cs +++ b/src/Discord.Net/DiscordSimpleClient.cs @@ -1,6 +1,8 @@ using Discord.Helpers; using Discord.WebSockets.Data; using System; +using System.Collections.Generic; +using System.Linq; using System.Runtime.ExceptionServices; using System.Threading; using System.Threading.Tasks; @@ -210,7 +212,7 @@ namespace Discord private async Task RunTasks() { - Task[] tasks = GetTasks(); + Task[] tasks = GetTasks().ToArray(); Task firstTask = Task.WhenAny(tasks); Task allTasks = Task.WhenAll(tasks); @@ -239,7 +241,7 @@ namespace Discord _connectedEvent.Reset(); _runTask = null; } - protected virtual Task[] GetTasks() + protected virtual IEnumerable GetTasks() { return new Task[] { _cancelToken.Wait() }; } diff --git a/src/Discord.Net/WebSockets/Voice/VoiceWebSocket.cs b/src/Discord.Net/WebSockets/Voice/VoiceWebSocket.cs index c1aab5a14..9930b066f 100644 --- a/src/Discord.Net/WebSockets/Voice/VoiceWebSocket.cs +++ b/src/Discord.Net/WebSockets/Voice/VoiceWebSocket.cs @@ -108,7 +108,7 @@ namespace Discord.WebSockets.Voice catch (OperationCanceledException) { } } - protected override Task[] GetTasks() + protected override IEnumerable GetTasks() { _isClearing = false; diff --git a/src/Discord.Net/WebSockets/WebSocket.BuiltIn.cs b/src/Discord.Net/WebSockets/WebSocket.BuiltIn.cs index 141f5839c..35e36979e 100644 --- a/src/Discord.Net/WebSockets/WebSocket.BuiltIn.cs +++ b/src/Discord.Net/WebSockets/WebSocket.BuiltIn.cs @@ -2,6 +2,7 @@ using Discord.Helpers; using System; using System.Collections.Concurrent; +using System.Collections.Generic; using System.ComponentModel; using System.Net.WebSockets; using System.Text; @@ -50,7 +51,7 @@ namespace Discord.WebSockets return TaskHelper.CompletedTask; } - public Task[] GetTasks(CancellationToken cancelToken) + public IEnumerable GetTasks(CancellationToken cancelToken) { return new Task[] { diff --git a/src/Discord.Net/WebSockets/WebSocket.WebSocketSharp.cs b/src/Discord.Net/WebSockets/WebSocket.WebSocketSharp.cs index 80b5aebbc..d3f5788d8 100644 --- a/src/Discord.Net/WebSockets/WebSocket.WebSocketSharp.cs +++ b/src/Discord.Net/WebSockets/WebSocket.WebSocketSharp.cs @@ -2,6 +2,7 @@ using Discord.Helpers; using System; using System.Collections.Concurrent; +using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using WSSharpNWebSocket = WebSocketSharp.WebSocket; @@ -68,7 +69,7 @@ namespace Discord.WebSockets return TaskHelper.CompletedTask; } - public Task[] GetTasks(CancellationToken cancelToken) + public IEnumerable GetTasks(CancellationToken cancelToken) { return new Task[] { diff --git a/src/Discord.Net/WebSockets/WebSocket.cs b/src/Discord.Net/WebSockets/WebSocket.cs index ac38a36e6..b07b8a70c 100644 --- a/src/Discord.Net/WebSockets/WebSocket.cs +++ b/src/Discord.Net/WebSockets/WebSocket.cs @@ -1,6 +1,7 @@ using Discord.Helpers; using Newtonsoft.Json; using System; +using System.Collections.Generic; using System.Linq; using System.Runtime.ExceptionServices; using System.Text; @@ -29,7 +30,7 @@ namespace Discord.WebSockets Task Connect(string host, CancellationToken cancelToken); Task Disconnect(); void QueueMessage(string message); - Task[] GetTasks(CancellationToken cancelToken); + IEnumerable GetTasks(CancellationToken cancelToken); } internal abstract partial class WebSocket @@ -162,7 +163,7 @@ namespace Discord.WebSockets protected virtual async Task RunTasks() { - Task[] tasks = GetTasks(); + Task[] tasks = GetTasks().ToArray(); Task firstTask = Task.WhenAny(tasks); Task allTasks = Task.WhenAll(tasks); @@ -180,12 +181,11 @@ namespace Discord.WebSockets //Start cleanup await Cleanup().ConfigureAwait(false); } - protected virtual Task[] GetTasks() + protected virtual IEnumerable GetTasks() { var cancelToken = _cancelToken; - return _engine.GetTasks(cancelToken) - .Concat(new Task[] { HeartbeatAsync(cancelToken) }) - .ToArray(); + return _engine.GetTasks(cancelToken) + .Concat(new Task[] { HeartbeatAsync(cancelToken) }); } protected virtual async Task Cleanup() {