@@ -110,7 +110,7 @@ namespace Discord.Commands | |||
{ | |||
var task = cmd.Handler(eventArgs); | |||
if (task != null) | |||
await task; | |||
await task.ConfigureAwait(false); | |||
} | |||
catch (Exception ex) | |||
{ | |||
@@ -123,7 +123,7 @@ namespace Discord | |||
if (channel == null) throw new ArgumentNullException(nameof(channel)); | |||
CheckReady(); | |||
await _api.EditChannel(channel.Id, name: name, topic: topic); | |||
await _api.EditChannel(channel.Id, name: name, topic: topic).ConfigureAwait(false); | |||
if (position != null) | |||
{ | |||
@@ -147,7 +147,7 @@ namespace Discord | |||
channels[newPos] = channel; | |||
} | |||
Channel after = minPos > 0 ? channels.Skip(minPos - 1).FirstOrDefault() : null; | |||
await ReorderChannels(channel.Server, channels.Skip(minPos), after); | |||
await ReorderChannels(channel.Server, channels.Skip(minPos), after).ConfigureAwait(false); | |||
} | |||
} | |||
@@ -187,7 +187,7 @@ namespace Discord | |||
CheckReady(); | |||
foreach (var message in messages) | |||
await DeleteMessageInternal(message); | |||
await DeleteMessageInternal(message).ConfigureAwait(false); | |||
} | |||
private async Task DeleteMessageInternal(Message message) | |||
{ | |||
@@ -48,7 +48,7 @@ namespace Discord | |||
var perms = channel.PermissionOverwrites.Where(x => x.TargetType != targetType || x.TargetId != targetId).FirstOrDefault(); | |||
if (allowValue != 0 || denyValue != 0) | |||
{ | |||
await _api.SetChannelPermissions(channel.Id, targetId, targetType.Value, allowValue, denyValue); | |||
await _api.SetChannelPermissions(channel.Id, targetId, targetType.Value, allowValue, denyValue).ConfigureAwait(false); | |||
if (perms != null) | |||
{ | |||
perms.Allow.SetRawValueInternal(allowValue); | |||
@@ -68,7 +68,7 @@ namespace Discord | |||
{ | |||
try | |||
{ | |||
await _api.DeleteChannelPermissions(channel.Id, targetId); | |||
await _api.DeleteChannelPermissions(channel.Id, targetId).ConfigureAwait(false); | |||
if (perms != null) | |||
{ | |||
channel.PermissionOverwrites = channel.PermissionOverwrites.Where(x => x.TargetType != targetType || x.TargetId != targetId).ToArray(); | |||
@@ -86,7 +86,7 @@ namespace Discord | |||
var role = _roles.GetOrAdd(response.Id, server.Id); | |||
role.Update(response); | |||
await EditRole(role, name: name); | |||
await EditRole(role, name: name).ConfigureAwait(false); | |||
return role; | |||
} | |||
@@ -101,7 +101,7 @@ namespace Discord | |||
name: name ?? role.Name, | |||
permissions: permissions?.RawValue ?? role.Permissions.RawValue, | |||
color: color?.RawValue, | |||
hoist: hoist); | |||
hoist: hoist).ConfigureAwait(false); | |||
if (position != null) | |||
{ | |||
@@ -124,7 +124,7 @@ namespace Discord | |||
roles[i] = roles[i - 1]; | |||
roles[newPos] = role; | |||
} | |||
await _api.ReorderRoles(role.Server.Id, roles.Skip(minPos).Select(x => x.Id), minPos); | |||
await _api.ReorderRoles(role.Server.Id, roles.Skip(minPos).Select(x => x.Id), minPos).ConfigureAwait(false); | |||
} | |||
} | |||
@@ -99,7 +99,7 @@ namespace Discord | |||
if (server == null) throw new ArgumentNullException(nameof(server)); | |||
CheckReady(); | |||
var response = await _api.EditServer(server.Id, name: name ?? server.Name, region: region.Value, iconType: iconType, icon: icon); | |||
var response = await _api.EditServer(server.Id, name: name ?? server.Name, region: region.Value, iconType: iconType, icon: icon).ConfigureAwait(false); | |||
server.Update(response); | |||
} | |||
@@ -52,7 +52,7 @@ namespace Discord | |||
this.Connected += async (s, e) => | |||
{ | |||
_api.CancelToken = CancelToken; | |||
await SendStatus(); | |||
await SendStatus().ConfigureAwait(false); | |||
}; | |||
VoiceDisconnected += (s, e) => | |||
@@ -212,7 +212,7 @@ namespace Discord | |||
} | |||
catch (TaskCanceledException) { throw new TimeoutException(); } | |||
await Connect(token); | |||
await Connect(token).ConfigureAwait(false); | |||
return token; | |||
} | |||
@@ -227,8 +227,9 @@ namespace Discord | |||
_api.Token = token; | |||
string gateway = (await _api.Gateway() | |||
.Timeout(_config.APITimeout) | |||
.ConfigureAwait(false)).Url; | |||
.Timeout(_config.APITimeout) | |||
.ConfigureAwait(false) | |||
).Url; | |||
if (_config.LogLevel >= LogMessageSeverity.Verbose) | |||
RaiseOnLog(LogMessageSeverity.Verbose, LogMessageSource.Client, $"Websocket endpoint: {gateway}"); | |||
@@ -259,7 +260,7 @@ namespace Discord | |||
while (_pendingMessages.TryDequeue(out ignored)) { } | |||
} | |||
await _api.Logout(); | |||
await _api.Logout().ConfigureAwait(false); | |||
_channels.Clear(); | |||
_users.Clear(); | |||
@@ -501,7 +502,7 @@ namespace Discord | |||
RaiseMessageCreated(msg); | |||
if (Config.AckMessages && !isAuthor) | |||
await _api.AckMessage(data.Id, data.ChannelId); | |||
await _api.AckMessage(data.Id, data.ChannelId).ConfigureAwait(false); | |||
} | |||
break; | |||
case "MESSAGE_UPDATE": | |||
@@ -612,7 +613,7 @@ namespace Discord | |||
//Internal (handled in DiscordSimpleClient) | |||
case "VOICE_SERVER_UPDATE": | |||
await base.OnReceivedEvent(e); | |||
await base.OnReceivedEvent(e).ConfigureAwait(false); | |||
break; | |||
//Others | |||
@@ -77,7 +77,7 @@ namespace Discord | |||
{ | |||
RaiseDisconnected(e); | |||
if (e.WasUnexpected) | |||
await socket.Reconnect(_token); | |||
await socket.Reconnect(_token).ConfigureAwait(false); | |||
}; | |||
if (!_config.VoiceOnly) | |||
@@ -90,7 +90,7 @@ namespace Discord | |||
} | |||
} | |||
socket.ReceivedEvent += async (s, e) => await OnReceivedEvent(e); | |||
socket.ReceivedEvent += async (s, e) => await OnReceivedEvent(e).ConfigureAwait(false); | |||
return socket; | |||
} | |||
internal virtual VoiceWebSocket CreateVoiceSocket() | |||
@@ -102,7 +102,7 @@ namespace Discord | |||
{ | |||
RaiseVoiceDisconnected(socket.CurrentServerId, e); | |||
if (e.WasUnexpected) | |||
await socket.Reconnect(); | |||
await socket.Reconnect().ConfigureAwait(false); | |||
}; | |||
if (_config.LogLevel >= LogMessageSeverity.Info) | |||
{ | |||
@@ -212,7 +212,7 @@ namespace Discord | |||
catch (Exception ex) { await DisconnectInternal(ex: ex, skipAwait: true).ConfigureAwait(false); } | |||
//Ensure all other tasks are signaled to end. | |||
await DisconnectInternal(skipAwait: true); | |||
await DisconnectInternal(skipAwait: true).ConfigureAwait(false); | |||
//Wait for the remaining tasks to complete | |||
try { await allTasks.ConfigureAwait(false); } | |||
@@ -309,7 +309,7 @@ namespace Discord | |||
{ | |||
string token = e.Payload.Value<string>("token"); | |||
_voiceSocket.Host = "wss://" + e.Payload.Value<string>("endpoint").Split(':')[0]; | |||
await _voiceSocket.Login(_userId, _dataSocket.SessionId, token, CancelToken); | |||
await _voiceSocket.Login(_userId, _dataSocket.SessionId, token, CancelToken).ConfigureAwait(false); | |||
} | |||
} | |||
break; | |||
@@ -70,7 +70,7 @@ namespace Discord.Net.WebSockets | |||
protected override async Task ProcessMessage(string json) | |||
{ | |||
await base.ProcessMessage(json); | |||
await base.ProcessMessage(json).ConfigureAwait(false); | |||
var msg = JsonConvert.DeserializeObject<WebSocketMessage>(json); | |||
if (msg.Sequence.HasValue) | |||
_lastSeq = msg.Sequence.Value; | |||
@@ -104,7 +104,7 @@ namespace Discord.Net.WebSockets | |||
Host = payload.Url; | |||
if (_logLevel >= LogMessageSeverity.Info) | |||
RaiseOnLog(LogMessageSeverity.Info, "Redirected to " + payload.Url); | |||
await Redirect(payload.Url); | |||
await Redirect(payload.Url).ConfigureAwait(false); | |||
} | |||
} | |||
break; | |||
@@ -66,7 +66,7 @@ namespace Discord.Net.WebSockets | |||
if ((WebSocketState)_state == WebSocketState.Connected) | |||
{ | |||
//Adjust the host and tell the system to reconnect | |||
await DisconnectInternal(new Exception("Server transfer occurred."), isUnexpected: false); | |||
await DisconnectInternal(new Exception("Server transfer occurred."), isUnexpected: false).ConfigureAwait(false); | |||
return; | |||
} | |||
@@ -163,7 +163,7 @@ namespace Discord.Net.WebSockets | |||
catch (Exception ex) { await DisconnectInternal(ex: ex, skipAwait: true).ConfigureAwait(false); } | |||
//Ensure all other tasks are signaled to end. | |||
await DisconnectInternal(skipAwait: true); | |||
await DisconnectInternal(skipAwait: true).ConfigureAwait(false); | |||
//Wait for the remaining tasks to complete | |||
try { await allTasks.ConfigureAwait(false); } | |||
@@ -186,7 +186,7 @@ namespace Discord.Net.WebSockets | |||
_wasDisconnectUnexpected = false; | |||
//Dont reset disconnectReason, we may called ThrowError() later | |||
await _engine.Disconnect(); | |||
await _engine.Disconnect().ConfigureAwait(false); | |||
_cancelTokenSource = null; | |||
var oldState = _state; | |||
_state = (int)WebSocketState.Disconnected; | |||
@@ -227,7 +227,7 @@ namespace Discord.Net.WebSockets | |||
await Task.Delay(_heartbeatInterval, cancelToken).ConfigureAwait(false); | |||
} | |||
else | |||
await Task.Delay(100, cancelToken); | |||
await Task.Delay(100, cancelToken).ConfigureAwait(false); | |||
} | |||
} | |||
catch (OperationCanceledException) { } | |||
@@ -52,14 +52,14 @@ namespace Discord.Net.WebSockets | |||
_webSocket.OnError += async (s, e) => | |||
{ | |||
_parent.RaiseOnLog(LogMessageSeverity.Error, e.Exception.GetBaseException().Message); | |||
await _parent.DisconnectInternal(e.Exception, skipAwait: true); | |||
await _parent.DisconnectInternal(e.Exception, skipAwait: true).ConfigureAwait(false); | |||
}; | |||
_webSocket.OnClose += async (s, e) => | |||
{ | |||
string code = e.WasClean ? e.Code.ToString() : "Unexpected"; | |||
string reason = e.Reason != "" ? e.Reason : "No Reason"; | |||
Exception ex = new Exception($"Got Close Message ({code}): {reason}"); | |||
await _parent.DisconnectInternal(ex, skipAwait: true); | |||
await _parent.DisconnectInternal(ex, skipAwait: true).ConfigureAwait(false); | |||
}; | |||
_webSocket.Log.Output = (e, m) => { }; //Dont let websocket-sharp print to console | |||
_webSocket.Connect(); | |||