Don't destroy disconnectReason so quickly

This commit is contained in:
Brandon Smith
2015-09-04 19:25:01 -03:00
parent 5b432769fb
commit 8f7492c246
3 changed files with 10 additions and 4 deletions

View File

@@ -42,6 +42,9 @@ namespace Discord
} }
catch (OperationCanceledException) catch (OperationCanceledException)
{ {
if (_disconnectReason == null)
throw new Exception("An unknown websocket error occurred.");
else
_disconnectReason.Throw(); _disconnectReason.Throw();
} }
try { _connectWaitOnLogin2.Wait(cancelToken); } //Waiting on READY handler try { _connectWaitOnLogin2.Wait(cancelToken); } //Waiting on READY handler

View File

@@ -109,6 +109,9 @@ namespace Discord
} }
catch (OperationCanceledException) catch (OperationCanceledException)
{ {
if (_disconnectReason == null)
throw new Exception("An unknown websocket error occurred.");
else
_disconnectReason.Throw(); _disconnectReason.Throw();
} }

View File

@@ -45,6 +45,7 @@ namespace Discord
await DisconnectAsync(); await DisconnectAsync();
_disconnectToken = new CancellationTokenSource(); _disconnectToken = new CancellationTokenSource();
_disconnectReason = null;
var cancelToken = _disconnectToken.Token; var cancelToken = _disconnectToken.Token;
_webSocket = new ClientWebSocket(); _webSocket = new ClientWebSocket();
@@ -79,7 +80,6 @@ namespace Discord
byte[] ignored; byte[] ignored;
while (_sendQueue.TryDequeue(out ignored)) { } while (_sendQueue.TryDequeue(out ignored)) { }
_disconnectReason = null;
_task = null; _task = null;
if (_isConnected) if (_isConnected)
{ {