* Cancel the TokenSource when disposing or nulling it out for the MqttClient

This commit is contained in:
Andre Crabb
2018-09-20 11:08:33 -04:00
parent 23ae8ab3b5
commit 39bc70cbf0
2 changed files with 7 additions and 5 deletions
+4 -4
View File
@@ -176,10 +176,12 @@ namespace MQTTnet.Client
public void Dispose() public void Dispose()
{ {
_cancellationTokenSource?.Cancel ();
_cancellationTokenSource?.Dispose(); _cancellationTokenSource?.Dispose();
_cancellationTokenSource = null; _cancellationTokenSource = null;
_adapter?.Dispose(); _adapter?.Dispose();
_adapter = null;
} }
private async Task<MqttConnAckPacket> AuthenticateAsync(MqttApplicationMessage willApplicationMessage, CancellationToken cancellationToken) private async Task<MqttConnAckPacket> AuthenticateAsync(MqttApplicationMessage willApplicationMessage, CancellationToken cancellationToken)
@@ -238,10 +240,7 @@ namespace MQTTnet.Client
} }
finally finally
{ {
_adapter?.Dispose(); Dispose ();
_adapter = null;
_cancellationTokenSource?.Dispose();
_cancellationTokenSource = null;
_cleanDisconnectInitiated = false; _cleanDisconnectInitiated = false;
_logger.Info("Disconnected."); _logger.Info("Disconnected.");
@@ -384,6 +383,7 @@ namespace MQTTnet.Client
if (exception is OperationCanceledException) if (exception is OperationCanceledException)
{ {
_logger.Info ("MQTT OperationCanceled exception while receiving packets.");
} }
else if (exception is MqttCommunicationException) else if (exception is MqttCommunicationException)
{ {
+3 -1
View File
@@ -125,7 +125,7 @@ namespace MQTTnet.Server
} }
_adapter = null; _adapter = null;
_cancellationTokenSource?.Cancel ();
_cancellationTokenSource?.Dispose(); _cancellationTokenSource?.Dispose();
_cancellationTokenSource = null; _cancellationTokenSource = null;
} }
@@ -240,7 +240,9 @@ namespace MQTTnet.Server
{ {
_pendingPacketsQueue?.Dispose(); _pendingPacketsQueue?.Dispose();
_cancellationTokenSource?.Cancel ();
_cancellationTokenSource?.Dispose(); _cancellationTokenSource?.Dispose();
_cancellationTokenSource = null;
} }
private void ProcessReceivedPacket(IMqttChannelAdapter adapter, MqttBasePacket packet, CancellationToken cancellationToken) private void ProcessReceivedPacket(IMqttChannelAdapter adapter, MqttBasePacket packet, CancellationToken cancellationToken)